@@ -13,7 +13,6 @@ import {determineEndpoint} from "../lib/utils";
1313
1414const NS = "zhc:tz" ;
1515const manufacturerOptions = {
16- sunricher : { manufacturerCode : Zcl . ManufacturerCode . SHENZHEN_SUNRICHER_TECHNOLOGY_LTD } ,
1716 lumi : { manufacturerCode : Zcl . ManufacturerCode . LUMI_UNITED_TECHOLOGY_LTD_SHENZHEN , disableDefaultResponse : true } ,
1817 eurotronic : { manufacturerCode : Zcl . ManufacturerCode . NXP_SEMICONDUCTORS } ,
1918 hue : { manufacturerCode : Zcl . ManufacturerCode . SIGNIFY_NETHERLANDS_B_V } ,
@@ -2635,129 +2634,6 @@ export const ZMCSW032D_cover_position: Tz.Converter = {
26352634 await entity . read ( "closuresWindowCovering" , [ isPosition ? "currentPositionLiftPercentage" : "currentPositionTiltPercentage" ] ) ;
26362635 } ,
26372636} ;
2638- export const namron_thermostat : Tz . Converter = {
2639- key : [
2640- "lcd_brightness" ,
2641- "button_vibration_level" ,
2642- "floor_sensor_type" ,
2643- "sensor" ,
2644- "powerup_status" ,
2645- "floor_sensor_calibration" ,
2646- "dry_time" ,
2647- "mode_after_dry" ,
2648- "temperature_display" ,
2649- "window_open_check" ,
2650- "hysterersis" ,
2651- "display_auto_off_enabled" ,
2652- "alarm_airtemp_overvalue" ,
2653- "away_mode" ,
2654- ] ,
2655- convertSet : async ( entity , key , value , meta ) => {
2656- if ( key === "lcd_brightness" ) {
2657- const lookup = { low : 0 , mid : 1 , high : 2 } ;
2658- const payload = { 4096 : { value : utils . getFromLookup ( value , lookup ) , type : Zcl . DataType . ENUM8 } } ;
2659- await entity . write ( "hvacThermostat" , payload , manufacturerOptions . sunricher ) ;
2660- } else if ( key === "button_vibration_level" ) {
2661- const lookup = { off : 0 , low : 1 , high : 2 } ;
2662- const payload = { 4097 : { value : utils . getFromLookup ( value , lookup ) , type : Zcl . DataType . ENUM8 } } ;
2663- await entity . write ( "hvacThermostat" , payload , manufacturerOptions . sunricher ) ;
2664- } else if ( key === "floor_sensor_type" ) {
2665- const lookup = { "10k" : 1 , "15k" : 2 , "50k" : 3 , "100k" : 4 , "12k" : 5 } ;
2666- const payload = { 4098 : { value : utils . getFromLookup ( value , lookup ) , type : Zcl . DataType . ENUM8 } } ;
2667- await entity . write ( "hvacThermostat" , payload , manufacturerOptions . sunricher ) ;
2668- } else if ( key === "sensor" ) {
2669- const lookup = { air : 0 , floor : 1 , both : 2 } ;
2670- const payload = { 4099 : { value : utils . getFromLookup ( value , lookup ) , type : Zcl . DataType . ENUM8 } } ;
2671- await entity . write ( "hvacThermostat" , payload , manufacturerOptions . sunricher ) ;
2672- } else if ( key === "powerup_status" ) {
2673- const lookup = { default : 0 , last_status : 1 } ;
2674- const payload = { 4100 : { value : utils . getFromLookup ( value , lookup ) , type : Zcl . DataType . ENUM8 } } ;
2675- await entity . write ( "hvacThermostat" , payload , manufacturerOptions . sunricher ) ;
2676- } else if ( key === "floor_sensor_calibration" ) {
2677- utils . assertNumber ( value ) ;
2678- const payload = { 4101 : { value : Math . round ( value * 10 ) , type : 0x28 } } ; // INT8S
2679- await entity . write ( "hvacThermostat" , payload , manufacturerOptions . sunricher ) ;
2680- } else if ( key === "dry_time" ) {
2681- const payload = { 4102 : { value : value , type : 0x20 } } ; // INT8U
2682- await entity . write ( "hvacThermostat" , payload , manufacturerOptions . sunricher ) ;
2683- } else if ( key === "mode_after_dry" ) {
2684- const lookup = { off : 0 , manual : 1 , auto : 2 , away : 3 } ;
2685- const payload = { 4103 : { value : utils . getFromLookup ( value , lookup ) , type : Zcl . DataType . ENUM8 } } ;
2686- await entity . write ( "hvacThermostat" , payload , manufacturerOptions . sunricher ) ;
2687- } else if ( key === "temperature_display" ) {
2688- const lookup = { room : 0 , floor : 1 } ;
2689- const payload = { 4104 : { value : utils . getFromLookup ( value , lookup ) , type : Zcl . DataType . ENUM8 } } ;
2690- await entity . write ( "hvacThermostat" , payload , manufacturerOptions . sunricher ) ;
2691- } else if ( key === "window_open_check" ) {
2692- utils . assertNumber ( value ) ;
2693- const payload = { 4105 : { value : value * 2 , type : 0x20 } } ;
2694- await entity . write ( "hvacThermostat" , payload , manufacturerOptions . sunricher ) ;
2695- } else if ( key === "hysterersis" ) {
2696- utils . assertNumber ( value ) ;
2697- const payload = { 4106 : { value : value * 10 , type : 0x20 } } ;
2698- await entity . write ( "hvacThermostat" , payload , manufacturerOptions . sunricher ) ;
2699- } else if ( key === "display_auto_off_enabled" ) {
2700- const lookup = { disabled : 0 , enabled : 1 } ;
2701- const payload = { 4107 : { value : utils . getFromLookup ( value , lookup ) , type : Zcl . DataType . ENUM8 } } ;
2702- await entity . write ( "hvacThermostat" , payload , manufacturerOptions . sunricher ) ;
2703- } else if ( key === "alarm_airtemp_overvalue" ) {
2704- const payload = { 8193 : { value : value , type : 0x20 } } ;
2705- await entity . write ( "hvacThermostat" , payload , manufacturerOptions . sunricher ) ;
2706- } else if ( key === "away_mode" ) {
2707- const payload = { 8194 : { value : Number ( value === "ON" ) , type : 0x30 } } ;
2708- await entity . write ( "hvacThermostat" , payload , manufacturerOptions . sunricher ) ;
2709- }
2710- } ,
2711- convertGet : async ( entity , key , meta ) => {
2712- switch ( key ) {
2713- case "lcd_brightness" :
2714- await entity . read ( "hvacThermostat" , [ 0x1000 ] , manufacturerOptions . sunricher ) ;
2715- break ;
2716- case "button_vibration_level" :
2717- await entity . read ( "hvacThermostat" , [ 0x1001 ] , manufacturerOptions . sunricher ) ;
2718- break ;
2719- case "floor_sensor_type" :
2720- await entity . read ( "hvacThermostat" , [ 0x1002 ] , manufacturerOptions . sunricher ) ;
2721- break ;
2722- case "sensor" :
2723- await entity . read ( "hvacThermostat" , [ 0x1003 ] , manufacturerOptions . sunricher ) ;
2724- break ;
2725- case "powerup_status" :
2726- await entity . read ( "hvacThermostat" , [ 0x1004 ] , manufacturerOptions . sunricher ) ;
2727- break ;
2728- case "floor_sensor_calibration" :
2729- await entity . read ( "hvacThermostat" , [ 0x1005 ] , manufacturerOptions . sunricher ) ;
2730- break ;
2731- case "dry_time" :
2732- await entity . read ( "hvacThermostat" , [ 0x1006 ] , manufacturerOptions . sunricher ) ;
2733- break ;
2734- case "mode_after_dry" :
2735- await entity . read ( "hvacThermostat" , [ 0x1007 ] , manufacturerOptions . sunricher ) ;
2736- break ;
2737- case "temperature_display" :
2738- await entity . read ( "hvacThermostat" , [ 0x1008 ] , manufacturerOptions . sunricher ) ;
2739- break ;
2740- case "window_open_check" :
2741- await entity . read ( "hvacThermostat" , [ 0x1009 ] , manufacturerOptions . sunricher ) ;
2742- break ;
2743- case "hysterersis" :
2744- await entity . read ( "hvacThermostat" , [ 0x100a ] , manufacturerOptions . sunricher ) ;
2745- break ;
2746- case "display_auto_off_enabled" :
2747- await entity . read ( "hvacThermostat" , [ 0x100b ] , manufacturerOptions . sunricher ) ;
2748- break ;
2749- case "alarm_airtemp_overvalue" :
2750- await entity . read ( "hvacThermostat" , [ 0x2001 ] , manufacturerOptions . sunricher ) ;
2751- break ;
2752- case "away_mode" :
2753- await entity . read ( "hvacThermostat" , [ 0x2002 ] , manufacturerOptions . sunricher ) ;
2754- break ;
2755-
2756- default : // Unknown key
2757- throw new Error ( `Unhandled key toZigbee.namron_thermostat.convertGet ${ key } ` ) ;
2758- }
2759- } ,
2760- } ;
27612637export const namron_thermostat_child_lock : Tz . Converter = {
27622638 key : [ "child_lock" ] ,
27632639 convertSet : async ( entity , key , value , meta ) => {
0 commit comments