23
23
from esphome .const import CONF_ID
24
24
25
25
from .. import SECPLUS_GDO_CONFIG_SCHEMA , secplus_gdo_ns , CONF_SECPLUS_GDO_ID
26
+ from .. import CONF_TOF_SDA_PIN
26
27
27
28
DEPENDENCIES = ["secplus_gdo" ]
28
29
29
30
GDONumber = secplus_gdo_ns .class_ ("GDONumber" , number .Number , cg .Component )
30
-
31
31
CONF_TYPE = "type"
32
32
TYPES = {
33
33
"open_duration" : "register_open_duration" ,
36
36
"rolling_code" : "register_rolling_code" ,
37
37
"min_command_interval" : "register_min_command_interval" ,
38
38
"time_to_close" : "register_time_to_close" ,
39
+ "vehicle_parked_threshold" : "register_vehicle_parked_threshold" ,
39
40
}
40
41
41
42
CONFIG_SCHEMA = (
45
46
cv .Required (CONF_TYPE ): cv .enum (TYPES , lower = True ),
46
47
cv .Optional ('min_command_interval' , default = 50 ): cv .uint32_t ,
47
48
cv .Optional ('time_to_close' , default = 300 ): cv .uint16_t ,
49
+ cv .Optional ('vehicle_parked_threshold' , default = 100 ): cv .uint16_t ,
48
50
}
49
51
)
50
52
.extend (SECPLUS_GDO_CONFIG_SCHEMA )
51
53
)
52
54
53
55
56
+
57
+
54
58
async def to_code (config ):
55
59
var = cg .new_Pvariable (config [CONF_ID ])
56
- if "duration" in str ( config [CONF_TYPE ]) :
60
+ if config [CONF_TYPE ] == "duration" :
57
61
await number .register_number (var , config , min_value = 0x0 , max_value = 0xffff , step = 1 )
58
- elif "client_id" in str ( config [CONF_TYPE ]) :
62
+ elif config [CONF_TYPE ] == "client_id" :
59
63
await number .register_number (var , config , min_value = 0x666 , max_value = 0x7ff666 , step = 1 )
60
- elif "min_command_interval" in str ( config [CONF_TYPE ]) :
64
+ elif config [CONF_TYPE ] == "min_command_interval" :
61
65
await number .register_number (var , config , min_value = 50 , max_value = 1000 , step = 50 )
62
- elif "time_to_close" in str ( config [CONF_TYPE ]) :
66
+ elif config [CONF_TYPE ] == "time_to_close" :
63
67
await number .register_number (var , config , min_value = 0 , max_value = 65535 , step = 60 )
68
+ elif config [CONF_TYPE ] == "vehicle_parked_threshold" :
69
+ await number .register_number (var , config , min_value = 10 , max_value = 400 , step = 1 )
64
70
else :
65
71
await number .register_number (var , config , min_value = 0x0 , max_value = 0xffffffff , step = 1 )
72
+
66
73
await cg .register_component (var , config )
67
74
parent = await cg .get_variable (config [CONF_SECPLUS_GDO_ID ])
68
75
fcall = str (parent ) + "->" + str (TYPES [config [CONF_TYPE ]])
69
76
text = fcall + "(" + str (var ) + ")"
70
77
cg .add ((cg .RawExpression (text )))
71
78
text = "gdo_set_" + str (config [CONF_TYPE ])
72
- cg .add (var .set_control_function (cg .RawExpression (text )))
79
+ cg .add (var .set_control_function (cg .RawExpression (text )))
0 commit comments