@@ -1747,23 +1747,45 @@ export default class NestAccfactory {
1747
1747
) ;
1748
1748
1749
1749
// Work out current mode. ie: off, cool, heat, range and get temperature low (heat) and high (cool)
1750
- RESTTypeData . hvac_mode = this . #rawData?. [ 'shared.' + value . value . serial_number ] . value . target_temperature_type ;
1751
- RESTTypeData . target_temperature_low = this . #rawData?. [ 'shared.' + value . value . serial_number ] . value . target_temperature_low ;
1752
- RESTTypeData . target_temperature_high = this . #rawData?. [ 'shared.' + value . value . serial_number ] . value . target_temperature_high ;
1750
+ RESTTypeData . hvac_mode =
1751
+ this . #rawData?. [ 'shared.' + value . value . serial_number ] ?. value ?. target_temperature_type !== undefined
1752
+ ? this . #rawData?. [ 'shared.' + value . value . serial_number ] . value . target_temperature_type
1753
+ : 'off' ;
1754
+ RESTTypeData . target_temperature =
1755
+ isNaN ( this . #rawData?. [ 'shared.' + value . value . serial_number ] ?. value ?. target_temperature ) === false
1756
+ ? Number ( this . #rawData[ 'shared.' + value . value . serial_number ] . value . target_temperature )
1757
+ : 0.0 ;
1758
+ RESTTypeData . target_temperature_low =
1759
+ isNaN ( this . #rawData?. [ 'shared.' + value . value . serial_number ] ?. value ?. target_temperature_low ) === false
1760
+ ? Number ( this . #rawData[ 'shared.' + value . value . serial_number ] . value . target_temperature_low )
1761
+ : 0.0 ;
1762
+ RESTTypeData . target_temperature_high =
1763
+ isNaN ( this . #rawData?. [ 'shared.' + value . value . serial_number ] ?. value ?. target_temperature_high ) === false
1764
+ ? Number ( this . #rawData[ 'shared.' + value . value . serial_number ] . value . target_temperature_high )
1765
+ : 0.0 ;
1753
1766
if ( this . #rawData?. [ 'shared.' + value . value . serial_number ] ?. value ?. target_temperature_type . toUpperCase ( ) === 'COOL' ) {
1754
1767
// Target temperature is the cooling point
1755
- RESTTypeData . target_temperature = this . #rawData[ 'shared.' + value . value . serial_number ] . value . target_temperature_high ;
1768
+ RESTTypeData . target_temperature =
1769
+ isNaN ( this . #rawData?. [ 'shared.' + value . value . serial_number ] ?. value ?. target_temperature_high ) === false
1770
+ ? Number ( this . #rawData[ 'shared.' + value . value . serial_number ] . value . target_temperature_high )
1771
+ : 0.0 ;
1756
1772
}
1757
1773
if ( this . #rawData?. [ 'shared.' + value . value . serial_number ] ?. value ?. target_temperature_type . toUpperCase ( ) === 'HEAT' ) {
1758
1774
// Target temperature is the heating point
1759
- RESTTypeData . target_temperature = this . #rawData[ 'shared.' + value . value . serial_number ] . value . target_temperature_low ;
1775
+ RESTTypeData . target_temperature =
1776
+ isNaN ( this . #rawData?. [ 'shared.' + value . value . serial_number ] ?. value ?. target_temperature_low ) === false
1777
+ ? Number ( this . #rawData[ 'shared.' + value . value . serial_number ] . value . target_temperature_low )
1778
+ : 0.0 ;
1760
1779
}
1761
1780
if ( this . #rawData?. [ 'shared.' + value . value . serial_number ] ?. value ?. target_temperature_type . toUpperCase ( ) === 'RANGE' ) {
1762
1781
// Target temperature is in between the heating and cooling point
1763
1782
RESTTypeData . target_temperature =
1764
- ( this . #rawData[ 'shared.' + value . value . serial_number ] . value . target_temperature_low +
1765
- this . #rawData[ 'shared.' + value . value . serial_number ] . value . target_temperature_high ) *
1766
- 0.5 ;
1783
+ isNaN ( this . #rawData?. [ 'shared.' + value . value . serial_number ] ?. value ?. target_temperature_low ) === false &&
1784
+ isNaN ( this . #rawData?. [ 'shared.' + value . value . serial_number ] ?. value ?. target_temperature_high ) === false
1785
+ ? ( Number ( this . #rawData[ 'shared.' + value . value . serial_number ] . value . target_temperature_low ) +
1786
+ Number ( this . #rawData[ 'shared.' + value . value . serial_number ] . value . target_temperature_high ) ) *
1787
+ 0.5
1788
+ : 0.0 ;
1767
1789
}
1768
1790
1769
1791
// Work out if eco mode is active and adjust temperature low/high and target
@@ -2794,7 +2816,7 @@ export default class NestAccfactory {
2794
2816
( key === 'target_temperature_high' && isNaN ( value ) === false )
2795
2817
) {
2796
2818
RESTStructureUUID = 'shared.' + nest_google_uuid . split ( '.' ) [ 1 ] ;
2797
- subscribeJSONData . objects . push ( { object_key : RESTStructureUUID , op : 'MERGE' , value : { ' target_change_pending' : true } } ) ;
2819
+ subscribeJSONData . objects . push ( { object_key : RESTStructureUUID , op : 'MERGE' , value : { target_change_pending : true } } ) ;
2798
2820
}
2799
2821
2800
2822
if ( key === 'fan_state' && typeof value === 'boolean' ) {
0 commit comments