21
21
# time:
22
22
# start: "07:00:00" # optional, default 7 AM
23
23
# end: "22:00:00" # optional, default 10 PM
24
+ # debug: false
24
25
25
26
class AlexaDoorbell (hass .Hass ):
26
27
27
28
def initialize (self ):
28
29
30
+ self .debug = True ;
29
31
self .door_motion_sensor = self .args ["door" ]["motion_sensor" ] if "motion_sensor" in self .args ["door" ] else None
30
32
self .door_sensor = self .args ["door" ]["sensor" ] if "sensor" in self .args ["door" ] else None
31
33
self .door_alexa = self .args ["door" ]["alexa" ] if "alexa" in self .args ["door" ] else None
@@ -47,8 +49,9 @@ def initialize(self):
47
49
self .time_start = datetime .strptime (self .args ["time" ]["start" ], '%H:%M:%S' ).time () if "start" in self .args ["time" ] else self .time_start
48
50
self .time_end = datetime .strptime (self .args ["time" ]["end" ], '%H:%M:%S' ).time () if "end" in self .args ["time" ] else self .time_end
49
51
50
- self .log (f"\n INIT - ALEXA DOORBELL\n START { self .time_start .strftime ('%H:%M:%S' )} \n END { self .time_end .strftime ('%H:%M:%S' )} " )
51
-
52
+ self .debug_log (f"\n **** INIT - ALEXA DOORBELL ****\n START { self .time_start .strftime ('%H:%M:%S' )} \n END { self .time_end .strftime ('%H:%M:%S' )} \n " )
53
+
54
+ self .debug = bool (self .args ["debug" ]) if "debug" in self .args else self .debug
52
55
53
56
def evaluate_and_ring_doorbell (self , entity , attribute , old , new , kwargs ):
54
57
# IF MOTION DETECTED
@@ -67,15 +70,15 @@ def evaluate_and_ring_doorbell(self, entity, attribute, old, new, kwargs):
67
70
self .run_in (self .notify_home , 0 )
68
71
else :
69
72
guest_notify_delay = 0
70
- self .log ("OUTSIDE TIME RANGE" )
73
+ self .debug_log ("OUTSIDE TIME RANGE" )
71
74
72
75
if self .door_alexa is not None :
73
76
self .run_in (self .notify_guest , guest_notify_delay , message = self .guest_greeting (time_okay ))
74
77
else :
75
78
if not door_closed :
76
- self .log ("DOOR IS OPEN" )
79
+ self .debug_log ("DOOR IS OPEN" )
77
80
elif last_door_closed_seconds < 30 :
78
- self .log ("DOOR CLOSED < 30 SECS AGO" )
81
+ self .debug_log ("DOOR CLOSED < 30 SECS AGO" )
79
82
80
83
81
84
def guest_greeting (self , time_okay ):
@@ -98,22 +101,22 @@ def doorbell_override(self, entity, attribute, old, new, kwargs):
98
101
self .call_service ("switch/turn_off" , entity_id = self .door_bell_switch )
99
102
if self .home_doorbell is not None : self .run_in (self .doorbell_ring , 0 )
100
103
self .run_in (self .notify_home , 0 )
101
- self .log ("DOORBELL OVERRIDE SWITCH" )
104
+ self .debug_log ("DOORBELL OVERRIDE SWITCH" )
102
105
103
106
104
107
def doorbell_ring (self , kwargs ):
105
108
self .call_service ("switch/turn_on" , entity_id = self .home_doorbell )
106
- self .log ("DOORBELL RING" )
109
+ self .debug_log ("DOORBELL RING" )
107
110
108
111
109
112
def notify_home (self , kwargs ):
110
113
self .call_service ("notify/alexa_media" , data = {"type" : "announce" if self .home_alexa_bell else "tts" , "method" : "all" }, target = self .home_alexa , title = "Home Assistant: Alexa Doorbell" , message = "Your attention please. There is someone at the door!" )
111
- self .log ("NOTIFY HOME" )
114
+ self .debug_log ("NOTIFY HOME" )
112
115
113
116
114
117
def notify_guest (self , kwargs ):
115
118
self .call_service ("notify/alexa_media" , data = {"type" : "announce" if self .door_alexa_bell else "tts" , "method" : "all" }, target = self .door_alexa , title = "Home Assistant: Alexa Doorbell" , message = kwargs ["message" ])
116
- self .log ("NOTIFY GUEST" )
119
+ self .debug_log ("NOTIFY GUEST" )
117
120
118
121
119
122
def is_time_okay (self , start , end ):
@@ -122,3 +125,7 @@ def is_time_okay(self, start, end):
122
125
return start <= current_time and current_time <= end
123
126
else :
124
127
return start <= current_time or current_time <= end
128
+
129
+ def debug_log (self , message ):
130
+ if self .debug :
131
+ self .log (message )
0 commit comments