mirror of
https://github.com/emsesp/EMS-ESP32.git
synced 2025-12-06 15:59:52 +03:00
Merge branch 'dev' of https://github.com/emsesp/EMS-ESP32 into dev
This commit is contained in:
@@ -7,7 +7,7 @@ For more details go to [docs.emsesp.org](https://docs.emsesp.org/).
|
|||||||
## Added
|
## Added
|
||||||
|
|
||||||
- change enum_heatingtype for remote control [#2268](https://github.com/emsesp/EMS-ESP32/issues/2268)
|
- change enum_heatingtype for remote control [#2268](https://github.com/emsesp/EMS-ESP32/issues/2268)
|
||||||
- system service commands [#2182](https://github.com/emsesp/EMS-ESP32/issues/2282)
|
- system service commands [#2182](https://github.com/emsesp/EMS-ESP32/issues/2182)
|
||||||
- read 0x02A5 for thermostat CT200 [#2277](https://github.com/emsesp/EMS-ESP32/issues/2277)
|
- read 0x02A5 for thermostat CT200 [#2277](https://github.com/emsesp/EMS-ESP32/issues/2277)
|
||||||
- Add "duplicate" option to Custom Entities [#2266](https://github.com/emsesp/EMS-ESP32/discussion/2266)
|
- Add "duplicate" option to Custom Entities [#2266](https://github.com/emsesp/EMS-ESP32/discussion/2266)
|
||||||
- Mask bits for bool custom entities
|
- Mask bits for bool custom entities
|
||||||
|
|||||||
@@ -3962,6 +3962,95 @@
|
|||||||
| status | status | int8 (>=-126<=126) | | false | DEVICE_DATA | 2 | 1 | 1 |
|
| status | status | int8 (>=-126<=126) | | false | DEVICE_DATA | 2 | 1 | 1 |
|
||||||
|
|
||||||
## Devices of type *thermostat*
|
## Devices of type *thermostat*
|
||||||
|
### CR11
|
||||||
|
| shortname | fullname | type | uom | writeable | tag type | register offset | register count | scale factor |
|
||||||
|
|-|-|-|-|-|-|-|-|-|
|
||||||
|
| errorcode | error code | string | | false | DEVICE_DATA | 0 | 8 | 1 |
|
||||||
|
| lastcode | last error code | string | | false | DEVICE_DATA | 8 | 25 | 1 |
|
||||||
|
| datetime | date/time | string | | true | DEVICE_DATA | 33 | 13 | 1 |
|
||||||
|
| intoffset | internal temperature offset | int8 (>=-12<=12) | C | true | DEVICE_DATA | 46 | 1 | 1/10 |
|
||||||
|
| floordry | floor drying | enum [off\|start\|heat\|hold\|cool\|end] | | false | DEVICE_DATA | 47 | 1 | 1 |
|
||||||
|
| dampedoutdoortemp | damped outdoor temperature | int16 (>=-3199<=3199) | C | false | DEVICE_DATA | 48 | 1 | 1/10 |
|
||||||
|
| floordrytemp | floor drying temperature | uint8 (>=0<=254) | C | false | DEVICE_DATA | 49 | 1 | 1 |
|
||||||
|
| building | building type | enum [light\|medium\|heavy] | | true | DEVICE_DATA | 50 | 1 | 1 |
|
||||||
|
| minexttemp | minimal external temperature | int8 (>=-126<=126) | C | true | DEVICE_DATA | 51 | 1 | 1 |
|
||||||
|
| damping | damping outdoor temperature | boolean | | true | DEVICE_DATA | 52 | 1 | 1 |
|
||||||
|
| solar | solar | boolean | | true | DEVICE_DATA | 53 | 1 | 1 |
|
||||||
|
| hybridstrategy | hybrid control strategy | enum [co2 optimized\|cost optimized\|outside temp switched\|co2 cost mix] | | true | DEVICE_DATA | 54 | 1 | 1 |
|
||||||
|
| switchovertemp | outside switchover temperature | int8 (>=-20<=20) | C | true | DEVICE_DATA | 55 | 1 | 1 |
|
||||||
|
| energycostratio | energy cost ratio | uint8 (>=0<=20) | | true | DEVICE_DATA | 56 | 1 | 1/10 |
|
||||||
|
| fossilefactor | fossile energy factor | uint8 (>=0<=5) | | true | DEVICE_DATA | 57 | 1 | 1/10 |
|
||||||
|
| electricfactor | electric energy factor | uint8 (>=0<=5) | | true | DEVICE_DATA | 58 | 1 | 1/10 |
|
||||||
|
| delayboiler | delay boiler support | uint8 (>=5<=120) | minutes | true | DEVICE_DATA | 59 | 1 | 1 |
|
||||||
|
| tempdiffboiler | temp diff boiler support | uint8 (>=1<=99) | C | true | DEVICE_DATA | 60 | 1 | 1 |
|
||||||
|
| pvenabledhw | enable raise dhw | boolean | | true | DEVICE_DATA | 61 | 1 | 1 |
|
||||||
|
| pvraiseheat | raise heating with PV | int8 (>=0<=5) | K | true | DEVICE_DATA | 62 | 1 | 1 |
|
||||||
|
| pvlowercool | lower cooling with PV | int8 (>=-5<=0) | K | true | DEVICE_DATA | 63 | 1 | 1 |
|
||||||
|
| absent | absent | boolean | | true | DEVICE_DATA | 64 | 1 | 1 |
|
||||||
|
| seltemp | selected room temperature | int16 (>=0<=30) | C | true | HC | 0 | 1 | 1/2 |
|
||||||
|
| currtemp | current room temperature | int16 (>=-3199<=3199) | C | false | HC | 1 | 1 | 1/10 |
|
||||||
|
| haclimate | mqtt discovery current room temperature | enum [selTemp\|roomTemp] (>=5<=30) | | false | HC | 2 | 1 | 1 |
|
||||||
|
| mode | operating mode | enum [manual\|auto] | | true | HC | 3 | 1 | 1 |
|
||||||
|
| modetype | mode type | enum [eco\|comfort] | | false | HC | 4 | 1 | 1 |
|
||||||
|
| ecotemp | eco temperature | uint8 (>=0<=127) | C | true | HC | 5 | 1 | 1/2 |
|
||||||
|
| manualtemp | manual temperature | uint8 (>=0<=127) | C | true | HC | 6 | 1 | 1/2 |
|
||||||
|
| comforttemp | comfort temperature | uint8 (>=0<=127) | C | true | HC | 7 | 1 | 1/2 |
|
||||||
|
| summertemp | summer temperature | uint8 (>=10<=30) | C | true | HC | 8 | 1 | 1 |
|
||||||
|
| designtemp | design temperature | uint8 (>=0<=254) | C | true | HC | 9 | 1 | 1 |
|
||||||
|
| offsettemp | offset temperature | int8 (>=-126<=126) | C | true | HC | 10 | 1 | 1 |
|
||||||
|
| minflowtemp | min flow temperature | uint8 (>=0<=254) | C | true | HC | 11 | 1 | 1 |
|
||||||
|
| maxflowtemp | max flow temperature | uint8 (>=0<=254) | C | true | HC | 12 | 1 | 1 |
|
||||||
|
| roominfluence | room influence | uint8 (>=0<=254) | C | true | HC | 13 | 1 | 1 |
|
||||||
|
| roominflfactor | room influence factor | uint8 (>=0<=25) | | true | HC | 14 | 1 | 1/10 |
|
||||||
|
| curroominfl | current room influence | int16 (>=-3199<=3199) | C | false | HC | 15 | 1 | 1/10 |
|
||||||
|
| nofrostmode | nofrost mode | enum [room\|outdoor\|room outdoor] | | true | HC | 16 | 1 | 1 |
|
||||||
|
| nofrosttemp | nofrost temperature | int8 (>=-126<=126) | C | true | HC | 17 | 1 | 1 |
|
||||||
|
| targetflowtemp | target flow temperature | uint8 (>=0<=254) | C | false | HC | 18 | 1 | 1 |
|
||||||
|
| heatingtype | heating type | enum [off\|radiator\|convector\|floor] | | true | HC | 19 | 1 | 1 |
|
||||||
|
| summersetmode | set summer mode | enum [summer\|auto\|winter] | | true | HC | 20 | 1 | 1 |
|
||||||
|
| hpoperatingmode | heatpump operating mode | enum [off\|auto\|heating\|cooling] | | true | HC | 21 | 1 | 1 |
|
||||||
|
| summermode | summer mode | enum [winter\|summer] | | false | HC | 22 | 1 | 1 |
|
||||||
|
| hpoperatingstate | heatpump operating state | enum [heating\|off\|cooling] | | false | HC | 23 | 1 | 1 |
|
||||||
|
| controlmode | control mode | enum [optimized\|simple\|n/a\|room\|power] | | true | HC | 24 | 1 | 1 |
|
||||||
|
| program | program | enum [prog 1\|prog 2] | | true | HC | 25 | 1 | 1 |
|
||||||
|
| tempautotemp | temporary set temperature automode | int8 (>=-1<=30) | C | true | HC | 26 | 1 | 1/2 |
|
||||||
|
| remoteseltemp | temporary set temperature from remote | int8 (>=-1<=30) | C | true | HC | 27 | 1 | 1/2 |
|
||||||
|
| fastheatup | fast heatup | uint8 (>=0<=100) | % | true | HC | 28 | 1 | 1 |
|
||||||
|
| switchonoptimization | switch-on optimization | boolean | | true | HC | 29 | 1 | 1 |
|
||||||
|
| reducemode | reduce mode | enum [outdoor\|room\|reduce] | | true | HC | 30 | 1 | 1 |
|
||||||
|
| noreducetemp | no reduce below temperature | int8 (>=-126<=126) | C | true | HC | 31 | 1 | 1 |
|
||||||
|
| reducetemp | off/reduce switch temperature | int8 (>=-126<=126) | C | true | HC | 32 | 1 | 1 |
|
||||||
|
| dhwprio | dhw priority | boolean | | true | HC | 33 | 1 | 1 |
|
||||||
|
| hpcooling | hp cooling | boolean | | true | HC | 34 | 1 | 1 |
|
||||||
|
| coolingon | cooling on | boolean | | false | HC | 35 | 1 | 1 |
|
||||||
|
| hpmode | HP Mode | enum [heating\|cooling\|heating & cooling] | | true | HC | 36 | 1 | 1 |
|
||||||
|
| dewoffset | dew point offset | uint8 (>=2<=10) | K | true | HC | 37 | 1 | 1 |
|
||||||
|
| roomtempdiff | room temp difference | uint8 (>=0<=254) | K | true | HC | 38 | 1 | 1 |
|
||||||
|
| hpminflowtemp | HP min. flow temp. | uint8 (>=0<=254) | C | true | HC | 39 | 1 | 1 |
|
||||||
|
| control | control device | enum [RC310\|RC200\|RC100\|RC100H\|TC100] | | true | HC | 40 | 1 | 1 |
|
||||||
|
| heatondelay | heat-on delay | uint8 (>=1<=48) | hours | true | HC | 43 | 1 | 1 |
|
||||||
|
| heatoffdelay | heat-off delay | uint8 (>=1<=48) | hours | true | HC | 44 | 1 | 1 |
|
||||||
|
| instantstart | instant start | uint8 (>=1<=10) | K | true | HC | 45 | 1 | 1 |
|
||||||
|
| boost | boost mode | boolean | | true | HC | 46 | 1 | 1 |
|
||||||
|
| boosttime | boost time | uint8 (>=0<=254) | hours | true | HC | 47 | 1 | 1 |
|
||||||
|
| coolstart | cooling starttemp | uint8 (>=20<=35) | C | true | HC | 48 | 1 | 1 |
|
||||||
|
| coolondelay | cooling on delay | uint8 (>=1<=48) | hours | true | HC | 49 | 1 | 1 |
|
||||||
|
| cooloffdelay | cooling off delay | uint8 (>=1<=48) | hours | true | HC | 50 | 1 | 1 |
|
||||||
|
| switchprogmode | switch program mode | enum [level\|absolute] | | true | HC | 51 | 1 | 1 |
|
||||||
|
| redthreshold | reduction threshold | int8 (>=-63<=63) | C | true | HC | 52 | 1 | 1/2 |
|
||||||
|
| mode | operating mode | enum [off\|normal\|comfort\|auto\|own prog] | | true | DHW | 0 | 1 | 1 |
|
||||||
|
| settemp | set temperature | uint8 (>=0<=254) | C | true | DHW | 1 | 1 | 1 |
|
||||||
|
| settemplow | set low temperature | uint8 (>=0<=254) | C | true | DHW | 2 | 1 | 1 |
|
||||||
|
| circmode | circulation pump mode | enum [off\|on\|auto\|own prog] | | true | DHW | 3 | 1 | 1 |
|
||||||
|
| chargeduration | charge duration | uint8 (>=0<=3810) | minutes | true | DHW | 4 | 1 | 15 |
|
||||||
|
| charge | charge | boolean | | true | DHW | 5 | 1 | 1 |
|
||||||
|
| extra | extra | boolean | | false | DHW | 6 | 1 | 1 |
|
||||||
|
| disinfecting | disinfecting | boolean | | true | DHW | 7 | 1 | 1 |
|
||||||
|
| disinfectday | disinfection day | enum [mo\|tu\|we\|th\|fr\|sa\|su\|all] | | true | DHW | 8 | 1 | 1 |
|
||||||
|
| disinfecttime | disinfection time | uint8 (>=0<=1431) | minutes | true | DHW | 9 | 1 | 15 |
|
||||||
|
| dailyheating | daily heating | boolean | | true | DHW | 10 | 1 | 1 |
|
||||||
|
| dailyheattime | daily heating time | uint8 (>=0<=1431) | minutes | true | DHW | 11 | 1 | 15 |
|
||||||
|
|
||||||
### CRF200S
|
### CRF200S
|
||||||
| shortname | fullname | type | uom | writeable | tag type | register offset | register count | scale factor |
|
| shortname | fullname | type | uom | writeable | tag type | register offset | register count | scale factor |
|
||||||
|-|-|-|-|-|-|-|-|-|
|
|-|-|-|-|-|-|-|-|-|
|
||||||
@@ -4813,8 +4902,6 @@
|
|||||||
| roomtempdiff | room temp difference | uint8 (>=0<=254) | K | true | HC | 38 | 1 | 1 |
|
| roomtempdiff | room temp difference | uint8 (>=0<=254) | K | true | HC | 38 | 1 | 1 |
|
||||||
| hpminflowtemp | HP min. flow temp. | uint8 (>=0<=254) | C | true | HC | 39 | 1 | 1 |
|
| hpminflowtemp | HP min. flow temp. | uint8 (>=0<=254) | C | true | HC | 39 | 1 | 1 |
|
||||||
| control | control device | enum [RC310\|RC200\|RC100\|RC100H\|TC100] | | true | HC | 40 | 1 | 1 |
|
| control | control device | enum [RC310\|RC200\|RC100\|RC100H\|TC100] | | true | HC | 40 | 1 | 1 |
|
||||||
| remotetemp | room temperature from remote | cmd [] (>=-1<=101) | C | true | HC | 41 | 1 | 1/10 |
|
|
||||||
| remotehum | room humidity from remote | cmd [] (>=-1<=101) | % | true | HC | 42 | 1 | 1 |
|
|
||||||
| heatondelay | heat-on delay | uint8 (>=1<=48) | hours | true | HC | 43 | 1 | 1 |
|
| heatondelay | heat-on delay | uint8 (>=1<=48) | hours | true | HC | 43 | 1 | 1 |
|
||||||
| heatoffdelay | heat-off delay | uint8 (>=1<=48) | hours | true | HC | 44 | 1 | 1 |
|
| heatoffdelay | heat-off delay | uint8 (>=1<=48) | hours | true | HC | 44 | 1 | 1 |
|
||||||
| instantstart | instant start | uint8 (>=1<=10) | K | true | HC | 45 | 1 | 1 |
|
| instantstart | instant start | uint8 (>=1<=10) | K | true | HC | 45 | 1 | 1 |
|
||||||
@@ -4914,8 +5001,6 @@
|
|||||||
| roomtempdiff | room temp difference | uint8 (>=0<=254) | K | true | HC | 38 | 1 | 1 |
|
| roomtempdiff | room temp difference | uint8 (>=0<=254) | K | true | HC | 38 | 1 | 1 |
|
||||||
| hpminflowtemp | HP min. flow temp. | uint8 (>=0<=254) | C | true | HC | 39 | 1 | 1 |
|
| hpminflowtemp | HP min. flow temp. | uint8 (>=0<=254) | C | true | HC | 39 | 1 | 1 |
|
||||||
| control | control device | enum [RC310\|RC200\|RC100\|RC100H\|TC100] | | true | HC | 40 | 1 | 1 |
|
| control | control device | enum [RC310\|RC200\|RC100\|RC100H\|TC100] | | true | HC | 40 | 1 | 1 |
|
||||||
| remotetemp | room temperature from remote | cmd [] (>=-1<=101) | C | true | HC | 41 | 1 | 1/10 |
|
|
||||||
| remotehum | room humidity from remote | cmd [] (>=-1<=101) | % | true | HC | 42 | 1 | 1 |
|
|
||||||
| heatondelay | heat-on delay | uint8 (>=1<=48) | hours | true | HC | 43 | 1 | 1 |
|
| heatondelay | heat-on delay | uint8 (>=1<=48) | hours | true | HC | 43 | 1 | 1 |
|
||||||
| heatoffdelay | heat-off delay | uint8 (>=1<=48) | hours | true | HC | 44 | 1 | 1 |
|
| heatoffdelay | heat-off delay | uint8 (>=1<=48) | hours | true | HC | 44 | 1 | 1 |
|
||||||
| instantstart | instant start | uint8 (>=1<=10) | K | true | HC | 45 | 1 | 1 |
|
| instantstart | instant start | uint8 (>=1<=10) | K | true | HC | 45 | 1 | 1 |
|
||||||
@@ -5023,8 +5108,6 @@
|
|||||||
| roomtempdiff | room temp difference | uint8 (>=0<=254) | K | true | HC | 38 | 1 | 1 |
|
| roomtempdiff | room temp difference | uint8 (>=0<=254) | K | true | HC | 38 | 1 | 1 |
|
||||||
| hpminflowtemp | HP min. flow temp. | uint8 (>=0<=254) | C | true | HC | 39 | 1 | 1 |
|
| hpminflowtemp | HP min. flow temp. | uint8 (>=0<=254) | C | true | HC | 39 | 1 | 1 |
|
||||||
| control | control device | enum [RC310\|RC200\|RC100\|RC100H\|TC100] | | true | HC | 40 | 1 | 1 |
|
| control | control device | enum [RC310\|RC200\|RC100\|RC100H\|TC100] | | true | HC | 40 | 1 | 1 |
|
||||||
| remotetemp | room temperature from remote | cmd [] (>=-1<=101) | C | true | HC | 41 | 1 | 1/10 |
|
|
||||||
| remotehum | room humidity from remote | cmd [] (>=-1<=101) | % | true | HC | 42 | 1 | 1 |
|
|
||||||
| heatondelay | heat-on delay | uint8 (>=1<=48) | hours | true | HC | 43 | 1 | 1 |
|
| heatondelay | heat-on delay | uint8 (>=1<=48) | hours | true | HC | 43 | 1 | 1 |
|
||||||
| heatoffdelay | heat-off delay | uint8 (>=1<=48) | hours | true | HC | 44 | 1 | 1 |
|
| heatoffdelay | heat-off delay | uint8 (>=1<=48) | hours | true | HC | 44 | 1 | 1 |
|
||||||
| instantstart | instant start | uint8 (>=1<=10) | K | true | HC | 45 | 1 | 1 |
|
| instantstart | instant start | uint8 (>=1<=10) | K | true | HC | 45 | 1 | 1 |
|
||||||
|
|||||||
@@ -3450,6 +3450,91 @@ device name,device type,product id,shortname,fullname,type [options...] \| (min/
|
|||||||
"UI800, BC400",thermostat,4,disinfecttime,disinfection time,uint8 (>=0<=1431),minutes,true,number.thermostat_dhw_disinfection_time,number.thermostat_dhw_disinfecttime,6,9,15,9,1
|
"UI800, BC400",thermostat,4,disinfecttime,disinfection time,uint8 (>=0<=1431),minutes,true,number.thermostat_dhw_disinfection_time,number.thermostat_dhw_disinfecttime,6,9,15,9,1
|
||||||
"UI800, BC400",thermostat,4,dailyheating,daily heating,boolean, ,true,switch.thermostat_dhw_daily_heating,switch.thermostat_dhw_dailyheating,6,9,1,10,1
|
"UI800, BC400",thermostat,4,dailyheating,daily heating,boolean, ,true,switch.thermostat_dhw_daily_heating,switch.thermostat_dhw_dailyheating,6,9,1,10,1
|
||||||
"UI800, BC400",thermostat,4,dailyheattime,daily heating time,uint8 (>=0<=1431),minutes,true,number.thermostat_dhw_daily_heating_time,number.thermostat_dhw_dailyheattime,6,9,15,11,1
|
"UI800, BC400",thermostat,4,dailyheattime,daily heating time,uint8 (>=0<=1431),minutes,true,number.thermostat_dhw_daily_heating_time,number.thermostat_dhw_dailyheattime,6,9,15,11,1
|
||||||
|
"CR11",thermostat,10,errorcode,error code,string, ,false,sensor.thermostat_error_code,sensor.thermostat_errorcode,6,0,1,0,8
|
||||||
|
"CR11",thermostat,10,lastcode,last error code,string, ,false,sensor.thermostat_last_error_code,sensor.thermostat_lastcode,6,0,1,8,25
|
||||||
|
"CR11",thermostat,10,datetime,date/time,string, ,true,sensor.thermostat_date/time,sensor.thermostat_datetime,6,0,1,33,13
|
||||||
|
"CR11",thermostat,10,intoffset,internal temperature offset,int8 (>=-12<=12),C,true,number.thermostat_internal_temperature_offset,number.thermostat_intoffset,6,0,1/10,46,1
|
||||||
|
"CR11",thermostat,10,floordry,floor drying,enum [off\|start\|heat\|hold\|cool\|end], ,false,sensor.thermostat_floor_drying,sensor.thermostat_floordry,6,0,1,47,1
|
||||||
|
"CR11",thermostat,10,dampedoutdoortemp,damped outdoor temperature,int16 (>=-3199<=3199),C,false,sensor.thermostat_damped_outdoor_temperature,sensor.thermostat_dampedoutdoortemp,6,0,1/10,48,1
|
||||||
|
"CR11",thermostat,10,floordrytemp,floor drying temperature,uint8 (>=0<=254),C,false,sensor.thermostat_floor_drying_temperature,sensor.thermostat_floordrytemp,6,0,1,49,1
|
||||||
|
"CR11",thermostat,10,building,building type,enum [light\|medium\|heavy], ,true,select.thermostat_building_type,select.thermostat_building,6,0,1,50,1
|
||||||
|
"CR11",thermostat,10,minexttemp,minimal external temperature,int8 (>=-126<=126),C,true,number.thermostat_minimal_external_temperature,number.thermostat_minexttemp,6,0,1,51,1
|
||||||
|
"CR11",thermostat,10,damping,damping outdoor temperature,boolean, ,true,switch.thermostat_damping_outdoor_temperature,switch.thermostat_damping,6,0,1,52,1
|
||||||
|
"CR11",thermostat,10,solar,solar,boolean, ,true,switch.thermostat_solar,switch.thermostat_solar,6,0,1,53,1
|
||||||
|
"CR11",thermostat,10,hybridstrategy,hybrid control strategy,enum [co2 optimized\|cost optimized\|outside temp switched\|co2 cost mix], ,true,select.thermostat_hybrid_control_strategy,select.thermostat_hybridstrategy,6,0,1,54,1
|
||||||
|
"CR11",thermostat,10,switchovertemp,outside switchover temperature,int8 (>=-20<=20),C,true,number.thermostat_outside_switchover_temperature,number.thermostat_switchovertemp,6,0,1,55,1
|
||||||
|
"CR11",thermostat,10,energycostratio,energy cost ratio,uint8 (>=0<=20), ,true,number.thermostat_energy_cost_ratio,number.thermostat_energycostratio,6,0,1/10,56,1
|
||||||
|
"CR11",thermostat,10,fossilefactor,fossile energy factor,uint8 (>=0<=5), ,true,number.thermostat_fossile_energy_factor,number.thermostat_fossilefactor,6,0,1/10,57,1
|
||||||
|
"CR11",thermostat,10,electricfactor,electric energy factor,uint8 (>=0<=5), ,true,number.thermostat_electric_energy_factor,number.thermostat_electricfactor,6,0,1/10,58,1
|
||||||
|
"CR11",thermostat,10,delayboiler,delay boiler support,uint8 (>=5<=120),minutes,true,number.thermostat_delay_boiler_support,number.thermostat_delayboiler,6,0,1,59,1
|
||||||
|
"CR11",thermostat,10,tempdiffboiler,temp diff boiler support,uint8 (>=1<=99),C,true,number.thermostat_temp_diff_boiler_support,number.thermostat_tempdiffboiler,6,0,1,60,1
|
||||||
|
"CR11",thermostat,10,pvenabledhw,enable raise dhw,boolean, ,true,switch.thermostat_enable_raise_dhw,switch.thermostat_pvenabledhw,6,0,1,61,1
|
||||||
|
"CR11",thermostat,10,pvraiseheat,raise heating with PV,int8 (>=0<=5),K,true,number.thermostat_raise_heating_with_PV,number.thermostat_pvraiseheat,6,0,1,62,1
|
||||||
|
"CR11",thermostat,10,pvlowercool,lower cooling with PV,int8 (>=-5<=0),K,true,number.thermostat_lower_cooling_with_PV,number.thermostat_pvlowercool,6,0,1,63,1
|
||||||
|
"CR11",thermostat,10,absent,absent,boolean, ,true,switch.thermostat_absent,switch.thermostat_absent,6,0,1,64,1
|
||||||
|
"CR11",thermostat,10,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
|
||||||
|
"CR11",thermostat,10,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
|
||||||
|
"CR11",thermostat,10,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
|
||||||
|
"CR11",thermostat,10,mode,operating mode,enum [manual\|auto], ,true,select.thermostat_hc1_operating_mode,select.thermostat_hc1_mode,6,1,1,3,1
|
||||||
|
"CR11",thermostat,10,modetype,mode type,enum [eco\|comfort], ,false,sensor.thermostat_hc1_mode_type,sensor.thermostat_hc1_modetype,6,1,1,4,1
|
||||||
|
"CR11",thermostat,10,ecotemp,eco temperature,uint8 (>=0<=127),C,true,number.thermostat_hc1_eco_temperature,number.thermostat_hc1_ecotemp,6,1,1/2,5,1
|
||||||
|
"CR11",thermostat,10,manualtemp,manual temperature,uint8 (>=0<=127),C,true,number.thermostat_hc1_manual_temperature,number.thermostat_hc1_manualtemp,6,1,1/2,6,1
|
||||||
|
"CR11",thermostat,10,comforttemp,comfort temperature,uint8 (>=0<=127),C,true,number.thermostat_hc1_comfort_temperature,number.thermostat_hc1_comforttemp,6,1,1/2,7,1
|
||||||
|
"CR11",thermostat,10,summertemp,summer temperature,uint8 (>=10<=30),C,true,number.thermostat_hc1_summer_temperature,number.thermostat_hc1_summertemp,6,1,1,8,1
|
||||||
|
"CR11",thermostat,10,designtemp,design temperature,uint8 (>=0<=254),C,true,number.thermostat_hc1_design_temperature,number.thermostat_hc1_designtemp,6,1,1,9,1
|
||||||
|
"CR11",thermostat,10,offsettemp,offset temperature,int8 (>=-126<=126),C,true,number.thermostat_hc1_offset_temperature,number.thermostat_hc1_offsettemp,6,1,1,10,1
|
||||||
|
"CR11",thermostat,10,minflowtemp,min flow temperature,uint8 (>=0<=254),C,true,number.thermostat_hc1_min_flow_temperature,number.thermostat_hc1_minflowtemp,6,1,1,11,1
|
||||||
|
"CR11",thermostat,10,maxflowtemp,max flow temperature,uint8 (>=0<=254),C,true,number.thermostat_hc1_max_flow_temperature,number.thermostat_hc1_maxflowtemp,6,1,1,12,1
|
||||||
|
"CR11",thermostat,10,roominfluence,room influence,uint8 (>=0<=254),C,true,number.thermostat_hc1_room_influence,number.thermostat_hc1_roominfluence,6,1,1,13,1
|
||||||
|
"CR11",thermostat,10,roominflfactor,room influence factor,uint8 (>=0<=25), ,true,number.thermostat_hc1_room_influence_factor,number.thermostat_hc1_roominflfactor,6,1,1/10,14,1
|
||||||
|
"CR11",thermostat,10,curroominfl,current room influence,int16 (>=-3199<=3199),C,false,sensor.thermostat_hc1_current_room_influence,sensor.thermostat_hc1_curroominfl,6,1,1/10,15,1
|
||||||
|
"CR11",thermostat,10,nofrostmode,nofrost mode,enum [room\|outdoor\|room outdoor], ,true,select.thermostat_hc1_nofrost_mode,select.thermostat_hc1_nofrostmode,6,1,1,16,1
|
||||||
|
"CR11",thermostat,10,nofrosttemp,nofrost temperature,int8 (>=-126<=126),C,true,number.thermostat_hc1_nofrost_temperature,number.thermostat_hc1_nofrosttemp,6,1,1,17,1
|
||||||
|
"CR11",thermostat,10,targetflowtemp,target flow temperature,uint8 (>=0<=254),C,false,sensor.thermostat_hc1_target_flow_temperature,sensor.thermostat_hc1_targetflowtemp,6,1,1,18,1
|
||||||
|
"CR11",thermostat,10,heatingtype,heating type,enum [off\|radiator\|convector\|floor], ,true,select.thermostat_hc1_heating_type,select.thermostat_hc1_heatingtype,6,1,1,19,1
|
||||||
|
"CR11",thermostat,10,summersetmode,set summer mode,enum [summer\|auto\|winter], ,true,select.thermostat_hc1_set_summer_mode,select.thermostat_hc1_summersetmode,6,1,1,20,1
|
||||||
|
"CR11",thermostat,10,hpoperatingmode,heatpump operating mode,enum [off\|auto\|heating\|cooling], ,true,select.thermostat_hc1_heatpump_operating_mode,select.thermostat_hc1_hpoperatingmode,6,1,1,21,1
|
||||||
|
"CR11",thermostat,10,summermode,summer mode,enum [winter\|summer], ,false,sensor.thermostat_hc1_summer_mode,sensor.thermostat_hc1_summermode,6,1,1,22,1
|
||||||
|
"CR11",thermostat,10,hpoperatingstate,heatpump operating state,enum [heating\|off\|cooling], ,false,sensor.thermostat_hc1_heatpump_operating_state,sensor.thermostat_hc1_hpoperatingstate,6,1,1,23,1
|
||||||
|
"CR11",thermostat,10,controlmode,control mode,enum [optimized\|simple\|n/a\|room\|power], ,true,select.thermostat_hc1_control_mode,select.thermostat_hc1_controlmode,6,1,1,24,1
|
||||||
|
"CR11",thermostat,10,program,program,enum [prog 1\|prog 2], ,true,select.thermostat_hc1_program,select.thermostat_hc1_program,6,1,1,25,1
|
||||||
|
"CR11",thermostat,10,tempautotemp,temporary set temperature automode,int8 (>=-1<=30),C,true,number.thermostat_hc1_temporary_set_temperature_automode,number.thermostat_hc1_tempautotemp,6,1,1/2,26,1
|
||||||
|
"CR11",thermostat,10,remoteseltemp,temporary set temperature from remote,int8 (>=-1<=30),C,true,number.thermostat_hc1_temporary_set_temperature_from_remote,number.thermostat_hc1_remoteseltemp,6,1,1/2,27,1
|
||||||
|
"CR11",thermostat,10,fastheatup,fast heatup,uint8 (>=0<=100),%,true,number.thermostat_hc1_fast_heatup,number.thermostat_hc1_fastheatup,6,1,1,28,1
|
||||||
|
"CR11",thermostat,10,switchonoptimization,switch-on optimization,boolean, ,true,switch.thermostat_hc1_switch-on_optimization,switch.thermostat_hc1_switchonoptimization,6,1,1,29,1
|
||||||
|
"CR11",thermostat,10,reducemode,reduce mode,enum [outdoor\|room\|reduce], ,true,select.thermostat_hc1_reduce_mode,select.thermostat_hc1_reducemode,6,1,1,30,1
|
||||||
|
"CR11",thermostat,10,noreducetemp,no reduce below temperature,int8 (>=-126<=126),C,true,number.thermostat_hc1_no_reduce_below_temperature,number.thermostat_hc1_noreducetemp,6,1,1,31,1
|
||||||
|
"CR11",thermostat,10,reducetemp,off/reduce switch temperature,int8 (>=-126<=126),C,true,number.thermostat_hc1_off/reduce_switch_temperature,number.thermostat_hc1_reducetemp,6,1,1,32,1
|
||||||
|
"CR11",thermostat,10,dhwprio,dhw priority,boolean, ,true,switch.thermostat_hc1_dhw_priority,switch.thermostat_hc1_dhwprio,6,1,1,33,1
|
||||||
|
"CR11",thermostat,10,hpcooling,hp cooling,boolean, ,true,switch.thermostat_hc1_hp_cooling,switch.thermostat_hc1_hpcooling,6,1,1,34,1
|
||||||
|
"CR11",thermostat,10,coolingon,cooling on,boolean, ,false,binary_sensor.thermostat_hc1_cooling_on,binary_sensor.thermostat_hc1_coolingon,6,1,1,35,1
|
||||||
|
"CR11",thermostat,10,hpmode,HP Mode,enum [heating\|cooling\|heating & cooling], ,true,select.thermostat_hc1_HP_Mode,select.thermostat_hc1_hpmode,6,1,1,36,1
|
||||||
|
"CR11",thermostat,10,dewoffset,dew point offset,uint8 (>=2<=10),K,true,number.thermostat_hc1_dew_point_offset,number.thermostat_hc1_dewoffset,6,1,1,37,1
|
||||||
|
"CR11",thermostat,10,roomtempdiff,room temp difference,uint8 (>=0<=254),K,true,number.thermostat_hc1_room_temp_difference,number.thermostat_hc1_roomtempdiff,6,1,1,38,1
|
||||||
|
"CR11",thermostat,10,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
|
||||||
|
"CR11",thermostat,10,control,control device,enum [RC310\|RC200\|RC100\|RC100H\|TC100], ,true,select.thermostat_hc1_control_device,select.thermostat_hc1_control,6,1,1,40,1
|
||||||
|
"CR11",thermostat,10,heatondelay,heat-on delay,uint8 (>=1<=48),hours,true,number.thermostat_hc1_heat-on_delay,number.thermostat_hc1_heatondelay,6,1,1,43,1
|
||||||
|
"CR11",thermostat,10,heatoffdelay,heat-off delay,uint8 (>=1<=48),hours,true,number.thermostat_hc1_heat-off_delay,number.thermostat_hc1_heatoffdelay,6,1,1,44,1
|
||||||
|
"CR11",thermostat,10,instantstart,instant start,uint8 (>=1<=10),K,true,number.thermostat_hc1_instant_start,number.thermostat_hc1_instantstart,6,1,1,45,1
|
||||||
|
"CR11",thermostat,10,boost,boost mode,boolean, ,true,switch.thermostat_hc1_boost_mode,switch.thermostat_hc1_boost,6,1,1,46,1
|
||||||
|
"CR11",thermostat,10,boosttime,boost time,uint8 (>=0<=254),hours,true,number.thermostat_hc1_boost_time,number.thermostat_hc1_boosttime,6,1,1,47,1
|
||||||
|
"CR11",thermostat,10,coolstart,cooling starttemp,uint8 (>=20<=35),C,true,number.thermostat_hc1_cooling_starttemp,number.thermostat_hc1_coolstart,6,1,1,48,1
|
||||||
|
"CR11",thermostat,10,coolondelay,cooling on delay,uint8 (>=1<=48),hours,true,number.thermostat_hc1_cooling_on_delay,number.thermostat_hc1_coolondelay,6,1,1,49,1
|
||||||
|
"CR11",thermostat,10,cooloffdelay,cooling off delay,uint8 (>=1<=48),hours,true,number.thermostat_hc1_cooling_off_delay,number.thermostat_hc1_cooloffdelay,6,1,1,50,1
|
||||||
|
"CR11",thermostat,10,switchprogmode,switch program mode,enum [level\|absolute], ,true,select.thermostat_hc1_switch_program_mode,select.thermostat_hc1_switchprogmode,6,1,1,51,1
|
||||||
|
"CR11",thermostat,10,redthreshold,reduction threshold,int8 (>=-63<=63),C,true,number.thermostat_hc1_reduction_threshold,number.thermostat_hc1_redthreshold,6,1,1/2,52,1
|
||||||
|
"CR11",thermostat,10,mode,operating mode,enum [off\|normal\|comfort\|auto\|own prog], ,true,select.thermostat_dhw_operating_mode,select.thermostat_dhw_mode,6,9,1,0,1
|
||||||
|
"CR11",thermostat,10,settemp,set temperature,uint8 (>=0<=254),C,true,number.thermostat_dhw_set_temperature,number.thermostat_dhw_settemp,6,9,1,1,1
|
||||||
|
"CR11",thermostat,10,settemplow,set low temperature,uint8 (>=0<=254),C,true,number.thermostat_dhw_set_low_temperature,number.thermostat_dhw_settemplow,6,9,1,2,1
|
||||||
|
"CR11",thermostat,10,circmode,circulation pump mode,enum [off\|on\|auto\|own prog], ,true,select.thermostat_dhw_circulation_pump_mode,select.thermostat_dhw_circmode,6,9,1,3,1
|
||||||
|
"CR11",thermostat,10,chargeduration,charge duration,uint8 (>=0<=3810),minutes,true,number.thermostat_dhw_charge_duration,number.thermostat_dhw_chargeduration,6,9,15,4,1
|
||||||
|
"CR11",thermostat,10,charge,charge,boolean, ,true,switch.thermostat_dhw_charge,switch.thermostat_dhw_charge,6,9,1,5,1
|
||||||
|
"CR11",thermostat,10,extra,extra,boolean, ,false,binary_sensor.thermostat_dhw_extra,binary_sensor.thermostat_dhw_extra,6,9,1,6,1
|
||||||
|
"CR11",thermostat,10,disinfecting,disinfecting,boolean, ,true,switch.thermostat_dhw_disinfecting,switch.thermostat_dhw_disinfecting,6,9,1,7,1
|
||||||
|
"CR11",thermostat,10,disinfectday,disinfection day,enum [mo\|tu\|we\|th\|fr\|sa\|su\|all], ,true,select.thermostat_dhw_disinfection_day,select.thermostat_dhw_disinfectday,6,9,1,8,1
|
||||||
|
"CR11",thermostat,10,disinfecttime,disinfection time,uint8 (>=0<=1431),minutes,true,number.thermostat_dhw_disinfection_time,number.thermostat_dhw_disinfecttime,6,9,15,9,1
|
||||||
|
"CR11",thermostat,10,dailyheating,daily heating,boolean, ,true,switch.thermostat_dhw_daily_heating,switch.thermostat_dhw_dailyheating,6,9,1,10,1
|
||||||
|
"CR11",thermostat,10,dailyheattime,daily heating time,uint8 (>=0<=1431),minutes,true,number.thermostat_dhw_daily_heating_time,number.thermostat_dhw_dailyheattime,6,9,15,11,1
|
||||||
"RC10",thermostat,65,errorcode,error code,string, ,false,sensor.thermostat_error_code,sensor.thermostat_errorcode,6,0,1,0,8
|
"RC10",thermostat,65,errorcode,error code,string, ,false,sensor.thermostat_error_code,sensor.thermostat_errorcode,6,0,1,0,8
|
||||||
"RC10",thermostat,65,lastcode,last error code,string, ,false,sensor.thermostat_last_error_code,sensor.thermostat_lastcode,6,0,1,8,25
|
"RC10",thermostat,65,lastcode,last error code,string, ,false,sensor.thermostat_last_error_code,sensor.thermostat_lastcode,6,0,1,8,25
|
||||||
"RC10",thermostat,65,datetime,date/time,string, ,false,sensor.thermostat_date/time,sensor.thermostat_datetime,6,0,1,33,13
|
"RC10",thermostat,65,datetime,date/time,string, ,false,sensor.thermostat_date/time,sensor.thermostat_datetime,6,0,1,33,13
|
||||||
@@ -3798,8 +3883,6 @@ device name,device type,product id,shortname,fullname,type [options...] \| (min/
|
|||||||
"RC200, CW100, CR120, CR50",thermostat,157,roomtempdiff,room temp difference,uint8 (>=0<=254),K,true,number.thermostat_hc1_room_temp_difference,number.thermostat_hc1_roomtempdiff,6,1,1,38,1
|
"RC200, CW100, CR120, CR50",thermostat,157,roomtempdiff,room temp difference,uint8 (>=0<=254),K,true,number.thermostat_hc1_room_temp_difference,number.thermostat_hc1_roomtempdiff,6,1,1,38,1
|
||||||
"RC200, CW100, CR120, CR50",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, CR50",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, CR50",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, CR50",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, CR50",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, CR50",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, CR50",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, CR50",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, CR50",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, CR50",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, CR50",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, CR50",thermostat,157,instantstart,instant start,uint8 (>=1<=10),K,true,number.thermostat_hc1_instant_start,number.thermostat_hc1_instantstart,6,1,1,45,1
|
||||||
@@ -3972,8 +4055,6 @@ device name,device type,product id,shortname,fullname,type [options...] \| (min/
|
|||||||
"RC100, CR10, Moduline 1000/1010",thermostat,165,roomtempdiff,room temp difference,uint8 (>=0<=254),K,true,number.thermostat_hc1_room_temp_difference,number.thermostat_hc1_roomtempdiff,6,1,1,38,1
|
"RC100, CR10, Moduline 1000/1010",thermostat,165,roomtempdiff,room temp difference,uint8 (>=0<=254),K,true,number.thermostat_hc1_room_temp_difference,number.thermostat_hc1_roomtempdiff,6,1,1,38,1
|
||||||
"RC100, CR10, 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, CR10, 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, CR10, 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, CR10, 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, CR10, 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, CR10, 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, CR10, 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, CR10, 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, CR10, 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, CR10, 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, CR10, 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, CR10, 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
|
||||||
@@ -4827,8 +4908,6 @@ device name,device type,product id,shortname,fullname,type [options...] \| (min/
|
|||||||
"RC120",thermostat,157,roomtempdiff,room temp difference,uint8 (>=0<=254),K,true,number.thermostat_hc1_room_temp_difference,number.thermostat_hc1_roomtempdiff,6,1,1,38,1
|
"RC120",thermostat,157,roomtempdiff,room temp difference,uint8 (>=0<=254),K,true,number.thermostat_hc1_room_temp_difference,number.thermostat_hc1_roomtempdiff,6,1,1,38,1
|
||||||
"RC120",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
|
"RC120",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
|
||||||
"RC120",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
|
"RC120",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
|
||||||
"RC120",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
|
|
||||||
"RC120",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
|
|
||||||
"RC120",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
|
"RC120",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
|
||||||
"RC120",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
|
"RC120",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
|
||||||
"RC120",thermostat,157,instantstart,instant start,uint8 (>=1<=10),K,true,number.thermostat_hc1_instant_start,number.thermostat_hc1_instantstart,6,1,1,45,1
|
"RC120",thermostat,157,instantstart,instant start,uint8 (>=1<=10),K,true,number.thermostat_hc1_instant_start,number.thermostat_hc1_instantstart,6,1,1,45,1
|
||||||
|
|||||||
|
Can't render this file because it is too large.
|
@@ -110,8 +110,8 @@ telegram_type_id,name,is_fetched
|
|||||||
0x02A1,RC300Curves,
|
0x02A1,RC300Curves,
|
||||||
0x02A2,RC300Curves,
|
0x02A2,RC300Curves,
|
||||||
0x02A5,RC300Monitor,
|
0x02A5,RC300Monitor,
|
||||||
0x02A6,CRFMonitor,
|
0x02A6,RC300Monitor,
|
||||||
0x02A7,CRFMonitor,
|
0x02A7,RC300Monitor,
|
||||||
0x02A8,RC300Monitor,
|
0x02A8,RC300Monitor,
|
||||||
0x02A9,RC300Monitor,
|
0x02A9,RC300Monitor,
|
||||||
0x02AA,RC300Monitor,
|
0x02AA,RC300Monitor,
|
||||||
|
|||||||
|
@@ -31,12 +31,12 @@
|
|||||||
"async-validator": "^4.2.5",
|
"async-validator": "^4.2.5",
|
||||||
"jwt-decode": "^4.0.0",
|
"jwt-decode": "^4.0.0",
|
||||||
"mime-types": "^2.1.35",
|
"mime-types": "^2.1.35",
|
||||||
"preact": "^10.25.2",
|
"preact": "^10.25.3",
|
||||||
"react": "^19.0.0",
|
"react": "^19.0.0",
|
||||||
"react-dom": "^19.0.0",
|
"react-dom": "^19.0.0",
|
||||||
"react-icons": "^5.4.0",
|
"react-icons": "^5.4.0",
|
||||||
"react-router": "^7.0.2",
|
"react-router": "^7.1.0",
|
||||||
"react-toastify": "^11.0.1",
|
"react-toastify": "^11.0.2",
|
||||||
"typesafe-i18n": "^5.26.2",
|
"typesafe-i18n": "^5.26.2",
|
||||||
"typescript": "^5.7.2"
|
"typescript": "^5.7.2"
|
||||||
},
|
},
|
||||||
@@ -58,7 +58,7 @@
|
|||||||
"rollup-plugin-visualizer": "^5.12.0",
|
"rollup-plugin-visualizer": "^5.12.0",
|
||||||
"terser": "^5.37.0",
|
"terser": "^5.37.0",
|
||||||
"typescript-eslint": "8.18.1",
|
"typescript-eslint": "8.18.1",
|
||||||
"vite": "^6.0.3",
|
"vite": "^6.0.5",
|
||||||
"vite-plugin-imagemin": "^0.6.1",
|
"vite-plugin-imagemin": "^0.6.1",
|
||||||
"vite-tsconfig-paths": "^5.1.4"
|
"vite-tsconfig-paths": "^5.1.4"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -57,7 +57,7 @@ const CustomEntities = () => {
|
|||||||
if (!dialogOpen && !numChanges) {
|
if (!dialogOpen && !numChanges) {
|
||||||
void fetchEntities();
|
void fetchEntities();
|
||||||
}
|
}
|
||||||
}, 3000);
|
});
|
||||||
|
|
||||||
const { send: writeEntities } = useRequest(
|
const { send: writeEntities } = useRequest(
|
||||||
(data: Entities) => writeCustomEntities(data),
|
(data: Entities) => writeCustomEntities(data),
|
||||||
|
|||||||
@@ -149,7 +149,7 @@ const Dashboard = () => {
|
|||||||
if (!deviceValueDialogOpen) {
|
if (!deviceValueDialogOpen) {
|
||||||
void fetchDashboard();
|
void fetchDashboard();
|
||||||
}
|
}
|
||||||
}, 3000);
|
});
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
showAll
|
showAll
|
||||||
|
|||||||
@@ -419,7 +419,7 @@ const Devices = () => {
|
|||||||
if (!deviceValueDialogOpen) {
|
if (!deviceValueDialogOpen) {
|
||||||
selectedDevice ? void sendDeviceData(selectedDevice) : void sendCoreData();
|
selectedDevice ? void sendDeviceData(selectedDevice) : void sendCoreData();
|
||||||
}
|
}
|
||||||
}, 3000);
|
});
|
||||||
|
|
||||||
const deviceValueDialogSave = async (devicevalue: DeviceValue) => {
|
const deviceValueDialogSave = async (devicevalue: DeviceValue) => {
|
||||||
const id = Number(device_select.state.id);
|
const id = Number(device_select.state.id);
|
||||||
|
|||||||
@@ -90,7 +90,7 @@ const Sensors = () => {
|
|||||||
if (!temperatureDialogOpen && !analogDialogOpen) {
|
if (!temperatureDialogOpen && !analogDialogOpen) {
|
||||||
void fetchSensorData();
|
void fetchSensorData();
|
||||||
}
|
}
|
||||||
}, 3000);
|
});
|
||||||
|
|
||||||
const common_theme = useTheme({
|
const common_theme = useTheme({
|
||||||
BaseRow: `
|
BaseRow: `
|
||||||
|
|||||||
@@ -14,11 +14,12 @@ import type { Theme } from '@mui/material';
|
|||||||
|
|
||||||
import * as APApi from 'api/ap';
|
import * as APApi from 'api/ap';
|
||||||
|
|
||||||
import { useAutoRequest } from 'alova/client';
|
import { useRequest } from 'alova/client';
|
||||||
import { FormLoader, SectionContent, useLayoutTitle } from 'components';
|
import { FormLoader, SectionContent, useLayoutTitle } from 'components';
|
||||||
import { useI18nContext } from 'i18n/i18n-react';
|
import { useI18nContext } from 'i18n/i18n-react';
|
||||||
import type { APStatusType } from 'types';
|
import type { APStatusType } from 'types';
|
||||||
import { APNetworkStatus } from 'types';
|
import { APNetworkStatus } from 'types';
|
||||||
|
import { useInterval } from 'utils';
|
||||||
|
|
||||||
export const apStatusHighlight = ({ status }: APStatusType, theme: Theme) => {
|
export const apStatusHighlight = ({ status }: APStatusType, theme: Theme) => {
|
||||||
switch (status) {
|
switch (status) {
|
||||||
@@ -34,11 +35,11 @@ export const apStatusHighlight = ({ status }: APStatusType, theme: Theme) => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const APStatus = () => {
|
const APStatus = () => {
|
||||||
const {
|
const { data, send: loadData, error } = useRequest(APApi.readAPStatus);
|
||||||
data,
|
|
||||||
send: loadData,
|
useInterval(() => {
|
||||||
error
|
void loadData();
|
||||||
} = useAutoRequest(APApi.readAPStatus, { pollingTime: 3000 });
|
});
|
||||||
|
|
||||||
const { LL } = useI18nContext();
|
const { LL } = useI18nContext();
|
||||||
useLayoutTitle(LL.ACCESS_POINT(0));
|
useLayoutTitle(LL.ACCESS_POINT(0));
|
||||||
|
|||||||
@@ -8,20 +8,21 @@ import {
|
|||||||
Table
|
Table
|
||||||
} from '@table-library/react-table-library/table';
|
} from '@table-library/react-table-library/table';
|
||||||
import { useTheme as tableTheme } from '@table-library/react-table-library/theme';
|
import { useTheme as tableTheme } from '@table-library/react-table-library/theme';
|
||||||
import { useAutoRequest } from 'alova/client';
|
import { useRequest } from 'alova/client';
|
||||||
import { FormLoader, SectionContent, useLayoutTitle } from 'components';
|
import { FormLoader, SectionContent, useLayoutTitle } from 'components';
|
||||||
import { useI18nContext } from 'i18n/i18n-react';
|
import { useI18nContext } from 'i18n/i18n-react';
|
||||||
import type { Translation } from 'i18n/i18n-types';
|
import type { Translation } from 'i18n/i18n-types';
|
||||||
|
import { useInterval } from 'utils';
|
||||||
|
|
||||||
import { readActivity } from '../../api/app';
|
import { readActivity } from '../../api/app';
|
||||||
import type { Stat } from '../main/types';
|
import type { Stat } from '../main/types';
|
||||||
|
|
||||||
const SystemActivity = () => {
|
const SystemActivity = () => {
|
||||||
const {
|
const { data, send: loadData, error } = useRequest(readActivity);
|
||||||
data,
|
|
||||||
send: loadData,
|
useInterval(() => {
|
||||||
error
|
void loadData();
|
||||||
} = useAutoRequest(readActivity, { pollingTime: 3000 });
|
});
|
||||||
|
|
||||||
const { LL } = useI18nContext();
|
const { LL } = useI18nContext();
|
||||||
|
|
||||||
|
|||||||
@@ -17,9 +17,10 @@ import {
|
|||||||
|
|
||||||
import * as SystemApi from 'api/system';
|
import * as SystemApi from 'api/system';
|
||||||
|
|
||||||
import { useAutoRequest } from 'alova/client';
|
import { useRequest } from 'alova/client';
|
||||||
import { FormLoader, SectionContent, useLayoutTitle } from 'components';
|
import { FormLoader, SectionContent, useLayoutTitle } from 'components';
|
||||||
import { useI18nContext } from 'i18n/i18n-react';
|
import { useI18nContext } from 'i18n/i18n-react';
|
||||||
|
import { useInterval } from 'utils';
|
||||||
|
|
||||||
import BBQKeesIcon from './bbqkees.svg';
|
import BBQKeesIcon from './bbqkees.svg';
|
||||||
|
|
||||||
@@ -32,11 +33,11 @@ const HardwareStatus = () => {
|
|||||||
|
|
||||||
useLayoutTitle(LL.HARDWARE());
|
useLayoutTitle(LL.HARDWARE());
|
||||||
|
|
||||||
const {
|
const { data, send: loadData, error } = useRequest(SystemApi.readSystemStatus);
|
||||||
data,
|
|
||||||
send: loadData,
|
useInterval(() => {
|
||||||
error
|
void loadData();
|
||||||
} = useAutoRequest(SystemApi.readSystemStatus, { pollingTime: 3000 });
|
});
|
||||||
|
|
||||||
const content = () => {
|
const content = () => {
|
||||||
if (!data) {
|
if (!data) {
|
||||||
|
|||||||
@@ -15,11 +15,12 @@ import type { Theme } from '@mui/material';
|
|||||||
|
|
||||||
import * as MqttApi from 'api/mqtt';
|
import * as MqttApi from 'api/mqtt';
|
||||||
|
|
||||||
import { useAutoRequest } from 'alova/client';
|
import { useRequest } from 'alova/client';
|
||||||
import { FormLoader, SectionContent, useLayoutTitle } from 'components';
|
import { FormLoader, SectionContent, useLayoutTitle } from 'components';
|
||||||
import { useI18nContext } from 'i18n/i18n-react';
|
import { useI18nContext } from 'i18n/i18n-react';
|
||||||
import type { MqttStatusType } from 'types';
|
import type { MqttStatusType } from 'types';
|
||||||
import { MqttDisconnectReason } from 'types';
|
import { MqttDisconnectReason } from 'types';
|
||||||
|
import { useInterval } from 'utils';
|
||||||
|
|
||||||
export const mqttStatusHighlight = (
|
export const mqttStatusHighlight = (
|
||||||
{ enabled, connected }: MqttStatusType,
|
{ enabled, connected }: MqttStatusType,
|
||||||
@@ -54,11 +55,11 @@ export const mqttQueueHighlight = (
|
|||||||
};
|
};
|
||||||
|
|
||||||
const MqttStatus = () => {
|
const MqttStatus = () => {
|
||||||
const {
|
const { data, send: loadData, error } = useRequest(MqttApi.readMqttStatus);
|
||||||
data,
|
|
||||||
send: loadData,
|
useInterval(() => {
|
||||||
error
|
void loadData();
|
||||||
} = useAutoRequest(MqttApi.readMqttStatus, { pollingTime: 3000 });
|
});
|
||||||
|
|
||||||
const { LL } = useI18nContext();
|
const { LL } = useI18nContext();
|
||||||
useLayoutTitle('MQTT');
|
useLayoutTitle('MQTT');
|
||||||
|
|||||||
@@ -28,19 +28,20 @@ import type { Theme } from '@mui/material';
|
|||||||
import * as NTPApi from 'api/ntp';
|
import * as NTPApi from 'api/ntp';
|
||||||
|
|
||||||
import { dialogStyle } from 'CustomTheme';
|
import { dialogStyle } from 'CustomTheme';
|
||||||
import { useAutoRequest, useRequest } from 'alova/client';
|
import { useRequest } from 'alova/client';
|
||||||
import { ButtonRow, FormLoader, SectionContent, useLayoutTitle } from 'components';
|
import { ButtonRow, FormLoader, SectionContent, useLayoutTitle } from 'components';
|
||||||
import { useI18nContext } from 'i18n/i18n-react';
|
import { useI18nContext } from 'i18n/i18n-react';
|
||||||
import type { NTPStatusType, Time } from 'types';
|
import type { NTPStatusType, Time } from 'types';
|
||||||
import { NTPSyncStatus } from 'types';
|
import { NTPSyncStatus } from 'types';
|
||||||
|
import { useInterval } from 'utils';
|
||||||
import { formatDateTime, formatLocalDateTime } from 'utils';
|
import { formatDateTime, formatLocalDateTime } from 'utils';
|
||||||
|
|
||||||
const NTPStatus = () => {
|
const NTPStatus = () => {
|
||||||
const {
|
const { data, send: loadData, error } = useRequest(NTPApi.readNTPStatus);
|
||||||
data,
|
|
||||||
send: loadData,
|
useInterval(() => {
|
||||||
error
|
void loadData();
|
||||||
} = useAutoRequest(NTPApi.readNTPStatus, { pollingTime: 3000 });
|
});
|
||||||
|
|
||||||
const [localTime, setLocalTime] = useState<string>('');
|
const [localTime, setLocalTime] = useState<string>('');
|
||||||
const [settingTime, setSettingTime] = useState<boolean>(false);
|
const [settingTime, setSettingTime] = useState<boolean>(false);
|
||||||
|
|||||||
@@ -18,11 +18,12 @@ import type { Theme } from '@mui/material';
|
|||||||
|
|
||||||
import * as NetworkApi from 'api/network';
|
import * as NetworkApi from 'api/network';
|
||||||
|
|
||||||
import { useAutoRequest } from 'alova/client';
|
import { useRequest } from 'alova/client';
|
||||||
import { FormLoader, SectionContent, useLayoutTitle } from 'components';
|
import { FormLoader, SectionContent, useLayoutTitle } from 'components';
|
||||||
import { useI18nContext } from 'i18n/i18n-react';
|
import { useI18nContext } from 'i18n/i18n-react';
|
||||||
import type { NetworkStatusType } from 'types';
|
import type { NetworkStatusType } from 'types';
|
||||||
import { NetworkConnectionStatus } from 'types';
|
import { NetworkConnectionStatus } from 'types';
|
||||||
|
import { useInterval } from 'utils';
|
||||||
|
|
||||||
const isConnected = ({ status }: NetworkStatusType) =>
|
const isConnected = ({ status }: NetworkStatusType) =>
|
||||||
status === NetworkConnectionStatus.WIFI_STATUS_CONNECTED ||
|
status === NetworkConnectionStatus.WIFI_STATUS_CONNECTED ||
|
||||||
@@ -81,11 +82,11 @@ const IPs = (status: NetworkStatusType) => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const NetworkStatus = () => {
|
const NetworkStatus = () => {
|
||||||
const {
|
const { data, send: loadData, error } = useRequest(NetworkApi.readNetworkStatus);
|
||||||
data,
|
|
||||||
send: loadData,
|
useInterval(() => {
|
||||||
error
|
void loadData();
|
||||||
} = useAutoRequest(NetworkApi.readNetworkStatus, { pollingTime: 3000 });
|
});
|
||||||
|
|
||||||
const { LL } = useI18nContext();
|
const { LL } = useI18nContext();
|
||||||
useLayoutTitle(LL.NETWORK(1));
|
useLayoutTitle(LL.NETWORK(1));
|
||||||
|
|||||||
@@ -11,9 +11,10 @@ import {
|
|||||||
import { readSystemStatus } from 'api/system';
|
import { readSystemStatus } from 'api/system';
|
||||||
|
|
||||||
import { dialogStyle } from 'CustomTheme';
|
import { dialogStyle } from 'CustomTheme';
|
||||||
import { useAutoRequest } from 'alova/client';
|
import { useRequest } from 'alova/client';
|
||||||
import MessageBox from 'components/MessageBox';
|
import MessageBox from 'components/MessageBox';
|
||||||
import { useI18nContext } from 'i18n/i18n-react';
|
import { useI18nContext } from 'i18n/i18n-react';
|
||||||
|
import { useInterval } from 'utils';
|
||||||
|
|
||||||
const RestartMonitor = () => {
|
const RestartMonitor = () => {
|
||||||
const [errorMessage, setErrorMessage] = useState<string>();
|
const [errorMessage, setErrorMessage] = useState<string>();
|
||||||
@@ -22,8 +23,7 @@ const RestartMonitor = () => {
|
|||||||
|
|
||||||
let count = 0;
|
let count = 0;
|
||||||
|
|
||||||
const { data } = useAutoRequest(readSystemStatus, {
|
const { data, send } = useRequest(readSystemStatus, {
|
||||||
pollingTime: 1000,
|
|
||||||
force: true,
|
force: true,
|
||||||
initialData: { status: 'Getting ready...' },
|
initialData: { status: 'Getting ready...' },
|
||||||
async middleware(_, next) {
|
async middleware(_, next) {
|
||||||
@@ -42,6 +42,10 @@ const RestartMonitor = () => {
|
|||||||
setErrorMessage(error.message);
|
setErrorMessage(error.message);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
useInterval(() => {
|
||||||
|
void send();
|
||||||
|
}, 1000); // check every second
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Dialog fullWidth={true} sx={dialogStyle} open={true}>
|
<Dialog fullWidth={true} sx={dialogStyle} open={true}>
|
||||||
<DialogContent dividers>
|
<DialogContent dividers>
|
||||||
|
|||||||
@@ -30,13 +30,15 @@ import { API } from 'api/app';
|
|||||||
import { readSystemStatus } from 'api/system';
|
import { readSystemStatus } from 'api/system';
|
||||||
|
|
||||||
import { dialogStyle } from 'CustomTheme';
|
import { dialogStyle } from 'CustomTheme';
|
||||||
import { useAutoRequest, useRequest } from 'alova/client';
|
import { useRequest } from 'alova/client';
|
||||||
import { type APIcall, busConnectionStatus } from 'app/main/types';
|
import { type APIcall, busConnectionStatus } from 'app/main/types';
|
||||||
import { FormLoader, SectionContent, useLayoutTitle } from 'components';
|
import { FormLoader, SectionContent, useLayoutTitle } from 'components';
|
||||||
import ListMenuItem from 'components/layout/ListMenuItem';
|
import ListMenuItem from 'components/layout/ListMenuItem';
|
||||||
import { AuthenticatedContext } from 'contexts/authentication';
|
import { AuthenticatedContext } from 'contexts/authentication';
|
||||||
import { useI18nContext } from 'i18n/i18n-react';
|
import { useI18nContext } from 'i18n/i18n-react';
|
||||||
import { NTPSyncStatus, NetworkConnectionStatus } from 'types';
|
import { NTPSyncStatus, NetworkConnectionStatus } from 'types';
|
||||||
|
import { useInterval } from 'utils';
|
||||||
|
import { formatDateTime } from 'utils/time';
|
||||||
|
|
||||||
import RestartMonitor from './RestartMonitor';
|
import RestartMonitor from './RestartMonitor';
|
||||||
|
|
||||||
@@ -58,9 +60,8 @@ const SystemStatus = () => {
|
|||||||
data,
|
data,
|
||||||
send: loadData,
|
send: loadData,
|
||||||
error
|
error
|
||||||
} = useAutoRequest(readSystemStatus, {
|
} = useRequest(readSystemStatus, {
|
||||||
initialData: [],
|
initialData: [],
|
||||||
pollingTime: 3000,
|
|
||||||
async middleware(_, next) {
|
async middleware(_, next) {
|
||||||
if (!restarting) {
|
if (!restarting) {
|
||||||
await next();
|
await next();
|
||||||
@@ -68,6 +69,10 @@ const SystemStatus = () => {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
useInterval(() => {
|
||||||
|
void loadData();
|
||||||
|
});
|
||||||
|
|
||||||
const theme = useTheme();
|
const theme = useTheme();
|
||||||
|
|
||||||
const formatDurationSec = (duration_sec: number) => {
|
const formatDurationSec = (duration_sec: number) => {
|
||||||
@@ -134,7 +139,7 @@ const SystemStatus = () => {
|
|||||||
case NTPSyncStatus.NTP_INACTIVE:
|
case NTPSyncStatus.NTP_INACTIVE:
|
||||||
return LL.INACTIVE(0);
|
return LL.INACTIVE(0);
|
||||||
case NTPSyncStatus.NTP_ACTIVE:
|
case NTPSyncStatus.NTP_ACTIVE:
|
||||||
return LL.ACTIVE();
|
return LL.ACTIVE() + ' (' + formatDateTime(data.ntp_time ?? '') + ')';
|
||||||
default:
|
default:
|
||||||
return LL.UNKNOWN();
|
return LL.UNKNOWN();
|
||||||
}
|
}
|
||||||
@@ -301,7 +306,7 @@ const SystemStatus = () => {
|
|||||||
icon={DeviceHubIcon}
|
icon={DeviceHubIcon}
|
||||||
bgcolor={activeHighlight(data.mqtt_status)}
|
bgcolor={activeHighlight(data.mqtt_status)}
|
||||||
label="MQTT"
|
label="MQTT"
|
||||||
text={data.mqtt_status ? LL.ACTIVE() : LL.INACTIVE(0)}
|
text={data.mqtt_status ? LL.CONNECTED(0) : LL.INACTIVE(0)}
|
||||||
to="/status/mqtt"
|
to="/status/mqtt"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ export interface SystemStatus {
|
|||||||
num_sensors: number;
|
num_sensors: number;
|
||||||
num_analogs: number;
|
num_analogs: number;
|
||||||
ntp_status: number;
|
ntp_status: number;
|
||||||
|
ntp_time?: string;
|
||||||
mqtt_status: boolean;
|
mqtt_status: boolean;
|
||||||
ap_status: boolean;
|
ap_status: boolean;
|
||||||
network_status: NetworkConnectionStatus;
|
network_status: NetworkConnectionStatus;
|
||||||
|
|||||||
@@ -1,7 +1,9 @@
|
|||||||
import { useEffect, useRef } from 'react';
|
import { useEffect, useRef } from 'react';
|
||||||
|
|
||||||
|
const DEFAULT_DELAY = 3000;
|
||||||
|
|
||||||
// adapted from https://www.joshwcomeau.com/snippets/react-hooks/use-interval/
|
// adapted from https://www.joshwcomeau.com/snippets/react-hooks/use-interval/
|
||||||
export const useInterval = (callback: () => void, delay: number) => {
|
export const useInterval = (callback: () => void, delay: number = DEFAULT_DELAY) => {
|
||||||
const intervalRef = useRef<number | null>(null);
|
const intervalRef = useRef<number | null>(null);
|
||||||
const savedCallback = useRef<() => void>(callback);
|
const savedCallback = useRef<() => void>(callback);
|
||||||
|
|
||||||
@@ -11,14 +13,12 @@ export const useInterval = (callback: () => void, delay: number) => {
|
|||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const tick = () => savedCallback.current();
|
const tick = () => savedCallback.current();
|
||||||
if (typeof delay === 'number') {
|
intervalRef.current = window.setInterval(tick, delay);
|
||||||
intervalRef.current = window.setInterval(tick, delay);
|
return () => {
|
||||||
return () => {
|
if (intervalRef.current !== null) {
|
||||||
if (intervalRef.current !== null) {
|
window.clearInterval(intervalRef.current);
|
||||||
window.clearInterval(intervalRef.current);
|
}
|
||||||
}
|
};
|
||||||
};
|
|
||||||
}
|
|
||||||
}, [delay]);
|
}, [delay]);
|
||||||
|
|
||||||
return intervalRef;
|
return intervalRef;
|
||||||
|
|||||||
@@ -1602,19 +1602,19 @@ __metadata:
|
|||||||
formidable: "npm:^3.5.2"
|
formidable: "npm:^3.5.2"
|
||||||
jwt-decode: "npm:^4.0.0"
|
jwt-decode: "npm:^4.0.0"
|
||||||
mime-types: "npm:^2.1.35"
|
mime-types: "npm:^2.1.35"
|
||||||
preact: "npm:^10.25.2"
|
preact: "npm:^10.25.3"
|
||||||
prettier: "npm:^3.4.2"
|
prettier: "npm:^3.4.2"
|
||||||
react: "npm:^19.0.0"
|
react: "npm:^19.0.0"
|
||||||
react-dom: "npm:^19.0.0"
|
react-dom: "npm:^19.0.0"
|
||||||
react-icons: "npm:^5.4.0"
|
react-icons: "npm:^5.4.0"
|
||||||
react-router: "npm:^7.0.2"
|
react-router: "npm:^7.1.0"
|
||||||
react-toastify: "npm:^11.0.1"
|
react-toastify: "npm:^11.0.2"
|
||||||
rollup-plugin-visualizer: "npm:^5.12.0"
|
rollup-plugin-visualizer: "npm:^5.12.0"
|
||||||
terser: "npm:^5.37.0"
|
terser: "npm:^5.37.0"
|
||||||
typesafe-i18n: "npm:^5.26.2"
|
typesafe-i18n: "npm:^5.26.2"
|
||||||
typescript: "npm:^5.7.2"
|
typescript: "npm:^5.7.2"
|
||||||
typescript-eslint: "npm:8.18.1"
|
typescript-eslint: "npm:8.18.1"
|
||||||
vite: "npm:^6.0.3"
|
vite: "npm:^6.0.5"
|
||||||
vite-plugin-imagemin: "npm:^0.6.1"
|
vite-plugin-imagemin: "npm:^0.6.1"
|
||||||
vite-tsconfig-paths: "npm:^5.1.4"
|
vite-tsconfig-paths: "npm:^5.1.4"
|
||||||
languageName: unknown
|
languageName: unknown
|
||||||
@@ -2028,9 +2028,9 @@ __metadata:
|
|||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"caniuse-lite@npm:^1.0.30001688":
|
"caniuse-lite@npm:^1.0.30001688":
|
||||||
version: 1.0.30001689
|
version: 1.0.30001690
|
||||||
resolution: "caniuse-lite@npm:1.0.30001689"
|
resolution: "caniuse-lite@npm:1.0.30001690"
|
||||||
checksum: 10c0/51cf99751dddfba24e13556ae0e0f38c062f76d49f2e24cce3d28e71a0325ca6fe04fe51b4a0e8467d601d94e72fea84f160bf577e7cbb5677f14ac673b6da20
|
checksum: 10c0/646bd469032afa90400a84dec30a2b00a6eda62c03ead358117e3f884cda8aacec02ec058a6dbee5eaf9714f83e483b9b0eb4fb42febb8076569f5ca40f1d347
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
@@ -2611,9 +2611,9 @@ __metadata:
|
|||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"electron-to-chromium@npm:^1.5.73":
|
"electron-to-chromium@npm:^1.5.73":
|
||||||
version: 1.5.74
|
version: 1.5.75
|
||||||
resolution: "electron-to-chromium@npm:1.5.74"
|
resolution: "electron-to-chromium@npm:1.5.75"
|
||||||
checksum: 10c0/1a93119adbdeb0bba4c29e3bad5a48e6a4626ae50fbff2bc5c207f32e67ed64a5d8db6500befb44080359be3b18be7bf830fb920d5199d935be95bb9f97deb10
|
checksum: 10c0/df769b7a5e9895a8ba8eb7f31b9525a0e00b8aef6e3ecab3faebe90756fc9ac008dddb8d9a2a78d2079cbaebd27da6e1379f77e910163f405bb1a3d622ec4276
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
@@ -2826,81 +2826,7 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"esbuild@npm:^0.14.14":
|
"esbuild@npm:0.24.0":
|
||||||
version: 0.14.54
|
|
||||||
resolution: "esbuild@npm:0.14.54"
|
|
||||||
dependencies:
|
|
||||||
"@esbuild/linux-loong64": "npm:0.14.54"
|
|
||||||
esbuild-android-64: "npm:0.14.54"
|
|
||||||
esbuild-android-arm64: "npm:0.14.54"
|
|
||||||
esbuild-darwin-64: "npm:0.14.54"
|
|
||||||
esbuild-darwin-arm64: "npm:0.14.54"
|
|
||||||
esbuild-freebsd-64: "npm:0.14.54"
|
|
||||||
esbuild-freebsd-arm64: "npm:0.14.54"
|
|
||||||
esbuild-linux-32: "npm:0.14.54"
|
|
||||||
esbuild-linux-64: "npm:0.14.54"
|
|
||||||
esbuild-linux-arm: "npm:0.14.54"
|
|
||||||
esbuild-linux-arm64: "npm:0.14.54"
|
|
||||||
esbuild-linux-mips64le: "npm:0.14.54"
|
|
||||||
esbuild-linux-ppc64le: "npm:0.14.54"
|
|
||||||
esbuild-linux-riscv64: "npm:0.14.54"
|
|
||||||
esbuild-linux-s390x: "npm:0.14.54"
|
|
||||||
esbuild-netbsd-64: "npm:0.14.54"
|
|
||||||
esbuild-openbsd-64: "npm:0.14.54"
|
|
||||||
esbuild-sunos-64: "npm:0.14.54"
|
|
||||||
esbuild-windows-32: "npm:0.14.54"
|
|
||||||
esbuild-windows-64: "npm:0.14.54"
|
|
||||||
esbuild-windows-arm64: "npm:0.14.54"
|
|
||||||
dependenciesMeta:
|
|
||||||
"@esbuild/linux-loong64":
|
|
||||||
optional: true
|
|
||||||
esbuild-android-64:
|
|
||||||
optional: true
|
|
||||||
esbuild-android-arm64:
|
|
||||||
optional: true
|
|
||||||
esbuild-darwin-64:
|
|
||||||
optional: true
|
|
||||||
esbuild-darwin-arm64:
|
|
||||||
optional: true
|
|
||||||
esbuild-freebsd-64:
|
|
||||||
optional: true
|
|
||||||
esbuild-freebsd-arm64:
|
|
||||||
optional: true
|
|
||||||
esbuild-linux-32:
|
|
||||||
optional: true
|
|
||||||
esbuild-linux-64:
|
|
||||||
optional: true
|
|
||||||
esbuild-linux-arm:
|
|
||||||
optional: true
|
|
||||||
esbuild-linux-arm64:
|
|
||||||
optional: true
|
|
||||||
esbuild-linux-mips64le:
|
|
||||||
optional: true
|
|
||||||
esbuild-linux-ppc64le:
|
|
||||||
optional: true
|
|
||||||
esbuild-linux-riscv64:
|
|
||||||
optional: true
|
|
||||||
esbuild-linux-s390x:
|
|
||||||
optional: true
|
|
||||||
esbuild-netbsd-64:
|
|
||||||
optional: true
|
|
||||||
esbuild-openbsd-64:
|
|
||||||
optional: true
|
|
||||||
esbuild-sunos-64:
|
|
||||||
optional: true
|
|
||||||
esbuild-windows-32:
|
|
||||||
optional: true
|
|
||||||
esbuild-windows-64:
|
|
||||||
optional: true
|
|
||||||
esbuild-windows-arm64:
|
|
||||||
optional: true
|
|
||||||
bin:
|
|
||||||
esbuild: bin/esbuild
|
|
||||||
checksum: 10c0/1df3cf7c5175ebee284fd027f287385a07ce8a0f0460a4412881aeff707577d91e55302f220ee8397b3b5aa17f4ceeb80eac16f36fc676532ff1b744e5965f2d
|
|
||||||
languageName: node
|
|
||||||
linkType: hard
|
|
||||||
|
|
||||||
"esbuild@npm:^0.24.0":
|
|
||||||
version: 0.24.0
|
version: 0.24.0
|
||||||
resolution: "esbuild@npm:0.24.0"
|
resolution: "esbuild@npm:0.24.0"
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -2983,6 +2909,80 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"esbuild@npm:^0.14.14":
|
||||||
|
version: 0.14.54
|
||||||
|
resolution: "esbuild@npm:0.14.54"
|
||||||
|
dependencies:
|
||||||
|
"@esbuild/linux-loong64": "npm:0.14.54"
|
||||||
|
esbuild-android-64: "npm:0.14.54"
|
||||||
|
esbuild-android-arm64: "npm:0.14.54"
|
||||||
|
esbuild-darwin-64: "npm:0.14.54"
|
||||||
|
esbuild-darwin-arm64: "npm:0.14.54"
|
||||||
|
esbuild-freebsd-64: "npm:0.14.54"
|
||||||
|
esbuild-freebsd-arm64: "npm:0.14.54"
|
||||||
|
esbuild-linux-32: "npm:0.14.54"
|
||||||
|
esbuild-linux-64: "npm:0.14.54"
|
||||||
|
esbuild-linux-arm: "npm:0.14.54"
|
||||||
|
esbuild-linux-arm64: "npm:0.14.54"
|
||||||
|
esbuild-linux-mips64le: "npm:0.14.54"
|
||||||
|
esbuild-linux-ppc64le: "npm:0.14.54"
|
||||||
|
esbuild-linux-riscv64: "npm:0.14.54"
|
||||||
|
esbuild-linux-s390x: "npm:0.14.54"
|
||||||
|
esbuild-netbsd-64: "npm:0.14.54"
|
||||||
|
esbuild-openbsd-64: "npm:0.14.54"
|
||||||
|
esbuild-sunos-64: "npm:0.14.54"
|
||||||
|
esbuild-windows-32: "npm:0.14.54"
|
||||||
|
esbuild-windows-64: "npm:0.14.54"
|
||||||
|
esbuild-windows-arm64: "npm:0.14.54"
|
||||||
|
dependenciesMeta:
|
||||||
|
"@esbuild/linux-loong64":
|
||||||
|
optional: true
|
||||||
|
esbuild-android-64:
|
||||||
|
optional: true
|
||||||
|
esbuild-android-arm64:
|
||||||
|
optional: true
|
||||||
|
esbuild-darwin-64:
|
||||||
|
optional: true
|
||||||
|
esbuild-darwin-arm64:
|
||||||
|
optional: true
|
||||||
|
esbuild-freebsd-64:
|
||||||
|
optional: true
|
||||||
|
esbuild-freebsd-arm64:
|
||||||
|
optional: true
|
||||||
|
esbuild-linux-32:
|
||||||
|
optional: true
|
||||||
|
esbuild-linux-64:
|
||||||
|
optional: true
|
||||||
|
esbuild-linux-arm:
|
||||||
|
optional: true
|
||||||
|
esbuild-linux-arm64:
|
||||||
|
optional: true
|
||||||
|
esbuild-linux-mips64le:
|
||||||
|
optional: true
|
||||||
|
esbuild-linux-ppc64le:
|
||||||
|
optional: true
|
||||||
|
esbuild-linux-riscv64:
|
||||||
|
optional: true
|
||||||
|
esbuild-linux-s390x:
|
||||||
|
optional: true
|
||||||
|
esbuild-netbsd-64:
|
||||||
|
optional: true
|
||||||
|
esbuild-openbsd-64:
|
||||||
|
optional: true
|
||||||
|
esbuild-sunos-64:
|
||||||
|
optional: true
|
||||||
|
esbuild-windows-32:
|
||||||
|
optional: true
|
||||||
|
esbuild-windows-64:
|
||||||
|
optional: true
|
||||||
|
esbuild-windows-arm64:
|
||||||
|
optional: true
|
||||||
|
bin:
|
||||||
|
esbuild: bin/esbuild
|
||||||
|
checksum: 10c0/1df3cf7c5175ebee284fd027f287385a07ce8a0f0460a4412881aeff707577d91e55302f220ee8397b3b5aa17f4ceeb80eac16f36fc676532ff1b744e5965f2d
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"escalade@npm:^3.1.1, escalade@npm:^3.2.0":
|
"escalade@npm:^3.1.1, escalade@npm:^3.2.0":
|
||||||
version: 3.2.0
|
version: 3.2.0
|
||||||
resolution: "escalade@npm:3.2.0"
|
resolution: "escalade@npm:3.2.0"
|
||||||
@@ -5427,10 +5427,10 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"preact@npm:^10.25.2":
|
"preact@npm:^10.25.3":
|
||||||
version: 10.25.2
|
version: 10.25.3
|
||||||
resolution: "preact@npm:10.25.2"
|
resolution: "preact@npm:10.25.3"
|
||||||
checksum: 10c0/03eb73164eb49a77c62cead2b9a951aa8bca39ccad58257f94353404b280465c60580c7bf32a3d44c8c24b24d7974c6db9807bafa69a6fc5dc9cdbd9a0e0df30
|
checksum: 10c0/b555a844e5c1b8e4f1feeb6d2f083dc3d44c7b3029c5d723e02b44283d5323c08ce881009a84345a43d9ebbabbc8ccdb868201f81ab3d5be3405e3378eca70be
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
@@ -5589,9 +5589,9 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"react-router@npm:^7.0.2":
|
"react-router@npm:^7.1.0":
|
||||||
version: 7.0.2
|
version: 7.1.0
|
||||||
resolution: "react-router@npm:7.0.2"
|
resolution: "react-router@npm:7.1.0"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@types/cookie": "npm:^0.6.0"
|
"@types/cookie": "npm:^0.6.0"
|
||||||
cookie: "npm:^1.0.1"
|
cookie: "npm:^1.0.1"
|
||||||
@@ -5603,19 +5603,19 @@ __metadata:
|
|||||||
peerDependenciesMeta:
|
peerDependenciesMeta:
|
||||||
react-dom:
|
react-dom:
|
||||||
optional: true
|
optional: true
|
||||||
checksum: 10c0/f6c04939218a3d7f2b03b215c2299eab4dbb0dea4a16e0acfd8bf181ec69ff42d66abdba10a25cc3297c514f052a0d03bfb80431225eb763bb27e4e5b0b4a106
|
checksum: 10c0/c4f4c76dc885cb2b351575052417f0a95ad454ae7cc27f42e5dcde993697b206eab9f5eb3f9a3acb1284331d41f8667bd4d10e246d463c3debd7d4de3edaa50b
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"react-toastify@npm:^11.0.1":
|
"react-toastify@npm:^11.0.2":
|
||||||
version: 11.0.1
|
version: 11.0.2
|
||||||
resolution: "react-toastify@npm:11.0.1"
|
resolution: "react-toastify@npm:11.0.2"
|
||||||
dependencies:
|
dependencies:
|
||||||
clsx: "npm:^2.1.1"
|
clsx: "npm:^2.1.1"
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
react: ^18 || ^19
|
react: ^18 || ^19
|
||||||
react-dom: ^18 || ^19
|
react-dom: ^18 || ^19
|
||||||
checksum: 10c0/ead322440484e89b184d0db59842b65a606ddbd1f6695d8695698178c55782ca7ac1dded24cf1f6aa3c40853579370131dee3943785e0f9db97d15ea4d9c711e
|
checksum: 10c0/e1ba01846782d47d0bf9cec7e2b4804f9af30e50a203786523f16db33691c1491f2382832e7ec4b69c583d3634ea0e3efb383da00ca9076bcf4bdd906a54a85f
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
@@ -5748,28 +5748,28 @@ __metadata:
|
|||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"resolve@npm:^1.10.0, resolve@npm:^1.19.0":
|
"resolve@npm:^1.10.0, resolve@npm:^1.19.0":
|
||||||
version: 1.22.9
|
version: 1.22.10
|
||||||
resolution: "resolve@npm:1.22.9"
|
resolution: "resolve@npm:1.22.10"
|
||||||
dependencies:
|
dependencies:
|
||||||
is-core-module: "npm:^2.16.0"
|
is-core-module: "npm:^2.16.0"
|
||||||
path-parse: "npm:^1.0.7"
|
path-parse: "npm:^1.0.7"
|
||||||
supports-preserve-symlinks-flag: "npm:^1.0.0"
|
supports-preserve-symlinks-flag: "npm:^1.0.0"
|
||||||
bin:
|
bin:
|
||||||
resolve: bin/resolve
|
resolve: bin/resolve
|
||||||
checksum: 10c0/314cea2c47f956743f106256854203bd43a60a3ec6fb85ee6894e75cf4b16004952e4280319bfeb4c6fb1246e3ecd27f2699abb2e2b316b7c5727ec6491505c9
|
checksum: 10c0/8967e1f4e2cc40f79b7e080b4582b9a8c5ee36ffb46041dccb20e6461161adf69f843b43067b4a375de926a2cd669157e29a29578191def399dd5ef89a1b5203
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"resolve@patch:resolve@npm%3A^1.10.0#optional!builtin<compat/resolve>, resolve@patch:resolve@npm%3A^1.19.0#optional!builtin<compat/resolve>":
|
"resolve@patch:resolve@npm%3A^1.10.0#optional!builtin<compat/resolve>, resolve@patch:resolve@npm%3A^1.19.0#optional!builtin<compat/resolve>":
|
||||||
version: 1.22.9
|
version: 1.22.10
|
||||||
resolution: "resolve@patch:resolve@npm%3A1.22.9#optional!builtin<compat/resolve>::version=1.22.9&hash=c3c19d"
|
resolution: "resolve@patch:resolve@npm%3A1.22.10#optional!builtin<compat/resolve>::version=1.22.10&hash=c3c19d"
|
||||||
dependencies:
|
dependencies:
|
||||||
is-core-module: "npm:^2.16.0"
|
is-core-module: "npm:^2.16.0"
|
||||||
path-parse: "npm:^1.0.7"
|
path-parse: "npm:^1.0.7"
|
||||||
supports-preserve-symlinks-flag: "npm:^1.0.0"
|
supports-preserve-symlinks-flag: "npm:^1.0.0"
|
||||||
bin:
|
bin:
|
||||||
resolve: bin/resolve
|
resolve: bin/resolve
|
||||||
checksum: 10c0/dadd8c85040784fdc18d6edc0cc27f7f35776c5d904b030ea67485ab9a5607568187afcfaf157e6fa9db9274481d155356bc42ca578c5578be25965b880d1e80
|
checksum: 10c0/52a4e505bbfc7925ac8f4cd91fd8c4e096b6a89728b9f46861d3b405ac9a1ccf4dcbf8befb4e89a2e11370dacd0160918163885cbc669369590f2f31f4c58939
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
@@ -6819,11 +6819,11 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"vite@npm:^6.0.3":
|
"vite@npm:^6.0.5":
|
||||||
version: 6.0.3
|
version: 6.0.5
|
||||||
resolution: "vite@npm:6.0.3"
|
resolution: "vite@npm:6.0.5"
|
||||||
dependencies:
|
dependencies:
|
||||||
esbuild: "npm:^0.24.0"
|
esbuild: "npm:0.24.0"
|
||||||
fsevents: "npm:~2.3.3"
|
fsevents: "npm:~2.3.3"
|
||||||
postcss: "npm:^8.4.49"
|
postcss: "npm:^8.4.49"
|
||||||
rollup: "npm:^4.23.0"
|
rollup: "npm:^4.23.0"
|
||||||
@@ -6867,7 +6867,7 @@ __metadata:
|
|||||||
optional: true
|
optional: true
|
||||||
bin:
|
bin:
|
||||||
vite: bin/vite.js
|
vite: bin/vite.js
|
||||||
checksum: 10c0/764ebed14770426a638575b23a51127c630ace873999ab896b0184484d8107e7255cdf64cfb36c65c1ef1d583e44b70a1d14c0f05b89612e834a5806e3964475
|
checksum: 10c0/d6927e1795abf0bffbf9183c3c3338c7cc1060bcfbfcd951aa4464c1e5478216f26c95077a2bbd29edbaebc079c1f08a37c7daac8f07c0a6bb53e79d502c70ef
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
|||||||
@@ -518,6 +518,7 @@ let system_status = {
|
|||||||
num_analogs: 1,
|
num_analogs: 1,
|
||||||
free_heap: 143,
|
free_heap: 143,
|
||||||
ntp_status: 2,
|
ntp_status: 2,
|
||||||
|
ntp_time: '2021-04-01T14:25:42Z',
|
||||||
mqtt_status: true,
|
mqtt_status: true,
|
||||||
ap_status: false,
|
ap_status: false,
|
||||||
network_status: 3, // wifi connected
|
network_status: 3, // wifi connected
|
||||||
|
|||||||
@@ -1399,4 +1399,5 @@ roomflow
|
|||||||
roomload
|
roomload
|
||||||
intvl
|
intvl
|
||||||
Français
|
Français
|
||||||
lltoa
|
lltoa
|
||||||
|
redthreshold
|
||||||
@@ -260,7 +260,7 @@ char * Helpers::render_value(char * result, const double value, const int8_t for
|
|||||||
result[0] = '-';
|
result[0] = '-';
|
||||||
result++;
|
result++;
|
||||||
whole = -whole;
|
whole = -whole;
|
||||||
v = -v;
|
v = -v;
|
||||||
}
|
}
|
||||||
#ifndef EMSESP_STANDALONE
|
#ifndef EMSESP_STANDALONE
|
||||||
lltoa(whole, result, 10);
|
lltoa(whole, result, 10);
|
||||||
|
|||||||
@@ -1495,10 +1495,9 @@ void System::get_value_json(JsonObject output, const std::string & circuit, cons
|
|||||||
if (circuit.length()) {
|
if (circuit.length()) {
|
||||||
output["circuit"] = circuit;
|
output["circuit"] = circuit;
|
||||||
}
|
}
|
||||||
output["readable"] = true;
|
output["readable"] = true;
|
||||||
output["writeable"] =
|
output["writeable"] = (name == "showerTimer" || name == "showerAlert" || name == "enabled" || name == "hideLed" || name == "analogEnabled");
|
||||||
(name == "showerTimer" || name == "showerAlert" || name == "enabled" || name == "hideLed" || name == "analogEnabled");
|
output["visible"] = true;
|
||||||
output["visible"] = true;
|
|
||||||
if (val.is<bool>()) {
|
if (val.is<bool>()) {
|
||||||
output["value"] = val.as<bool>();
|
output["value"] = val.as<bool>();
|
||||||
output["type"] = "boolean";
|
output["type"] = "boolean";
|
||||||
|
|||||||
Reference in New Issue
Block a user