@@ -905,46 +905,58 @@ int DeRestPluginPrivate::changeSensorConfig(const ApiRequest &req, ApiResponse &
905
905
}
906
906
else if (rid.suffix == RConfigOffset) // Signed integer
907
907
{
908
- data. integer = data. integer / 10 ;
909
-
910
- if (( R_GetProductId (sensor) == QLatin1String (" Tuya_THD HY369 TRV" ) ||
911
- R_GetProductId (sensor) == QLatin1String (" Tuya_THD Essentials TRV" ) ||
912
- R_GetProductId (sensor) == QLatin1String (" Tuya_THD Smart radiator TRV" ) ||
913
- R_GetProductId (sensor) == QLatin1String (" Tuya_THD NX-4911-675 TRV" ) ||
914
- R_GetProductId (sensor) == QLatin1String (" Tuya_THD SEA801-ZIGBEE TRV " ) ) ||
915
- R_GetProductId (sensor) == QLatin1String (" Tuya_THD WZB-TRVL TRV" ))
908
+ if ( R_GetProductId (sensor) == QLatin1String ( " Tuya_THD HY369 TRV " ) ||
909
+ R_GetProductId (sensor) == QLatin1String ( " Tuya_THD HY368 TRV " ) ||
910
+ R_GetProductId (sensor) == QLatin1String (" Tuya_THD Essentials TRV" ) ||
911
+ R_GetProductId (sensor) == QLatin1String (" Tuya_THD Smart radiator TRV" ) ||
912
+ R_GetProductId (sensor) == QLatin1String (" Tuya_THD NX-4911-675 TRV" ) ||
913
+ R_GetProductId (sensor) == QLatin1String (" Tuya_THD SEA801-ZIGBEE TRV" ) ||
914
+ R_GetProductId (sensor) == QLatin1String (" Tuya_THD BTH-002 Thermostat " ) ||
915
+ R_GetProductId (sensor) == QLatin1String (" Tuya_THD WZB-TRVL TRV" ))
916
916
{
917
917
QByteArray tuyaData;
918
918
bool alternative = false ;
919
+
920
+ qint8 offset2 = data.integer / 100 ;
921
+
922
+ if (offset2 > 6 ) { offset2 = 6 ; } // offset, min = -60, max = 60
923
+ if (offset2 < -6 ) { offset2 = -6 ; }
919
924
920
- if (R_GetProductId (sensor) == QLatin1String (" Tuya_THD WZB-TRVL TRV " ))
925
+ if (R_GetProductId (sensor) == QLatin1String (" Tuya_THD BTH-002 Thermostat " )) // Moes
921
926
{
922
- if (data.integer > 6 ) { data.integer = 6 ; } // offset, min = -60, max = 60
923
- if (data.integer < -6 ) { data.integer = -6 ; }
927
+ if (offset2 < 0 )
928
+ {
929
+ offset2 = 4096 + offset2;
930
+ }
924
931
925
932
alternative = true ;
926
933
}
927
- else
934
+ else if (R_GetProductId (sensor) == QLatin1String (" Tuya_THD WZB-TRVL TRV" ) || // Saswell
935
+ R_GetProductId (sensor) == QLatin1String (" Tuya_THD Smart radiator TRV" ) ||
936
+ R_GetProductId (sensor) == QLatin1String (" Tuya_THD SEA801-ZIGBEE TRV" ))
937
+ {
938
+ alternative = true ;
939
+ }
940
+ else // others
928
941
{
929
- if (data.integer > 90 ) { data.integer = 90 ; } // offset, min = -90, max = 90
930
- if (data.integer < -90 ) { data.integer = -90 ; }
942
+ offset2 = offset2 * 10 ;
931
943
}
932
944
933
- tuyaData.append ((qint8)((offset >> 24 ) & 0xff ));
934
- tuyaData.append ((qint8)((offset >> 16 ) & 0xff ));
935
- tuyaData.append ((qint8)((offset >> 8 ) & 0xff ));
936
- tuyaData.append ((qint8)(offset & 0xff ));
945
+ tuyaData.append ((qint8)((offset2 >> 24 ) & 0xff ));
946
+ tuyaData.append ((qint8)((offset2 >> 16 ) & 0xff ));
947
+ tuyaData.append ((qint8)((offset2 >> 8 ) & 0xff ));
948
+ tuyaData.append ((qint8)(offset2 & 0xff ));
937
949
938
950
if (!alternative)
939
951
{
940
- if (sendTuyaRequest (task, TaskThermostat, DP_TYPE_VALUE, 0x2c , tuyaData))
952
+ if (sendTuyaRequest (task, TaskThermostat, DP_TYPE_VALUE, DP_IDENTIFIER_THERMOSTAT_CALIBRATION_2 , tuyaData)) // Others
941
953
{
942
954
updated = true ;
943
955
}
944
956
}
945
957
else
946
958
{
947
- if (sendTuyaRequest (task, TaskThermostat, DP_TYPE_VALUE, 0x1b , tuyaData))
959
+ if (sendTuyaRequest (task, TaskThermostat, DP_TYPE_VALUE, DP_IDENTIFIER_THERMOSTAT_CALIBRATION_1 , tuyaData)) // Moes and Saswell
948
960
{
949
961
updated = true ;
950
962
}
0 commit comments