updates to 0.115.5
This commit is contained in:
parent
86d1f32caf
commit
b21706d3cd
|
@ -16,14 +16,14 @@ homeassistant:
|
||||||
packages: !include_dir_named packages
|
packages: !include_dir_named packages
|
||||||
|
|
||||||
allowlist_external_dirs:
|
allowlist_external_dirs:
|
||||||
- "/home/homeassistant/.homeassistant/www/downloads/camera/patio/"
|
- /home/homeassistant/.homeassistant/www/downloads/camera/patio/
|
||||||
- "/home/homeassistant/.homeassistant/www/downloads/camera/garage/"
|
- /home/homeassistant/.homeassistant/www/downloads/camera/garage/
|
||||||
- "/home/homeassistant/.homeassistant/www/downloads/camera/playarea/"
|
- /home/homeassistant/.homeassistant/www/downloads/camera/playarea/
|
||||||
- "/home/homeassistant/.homeassistant/www/downloads/camera/driveway/"
|
- /home/homeassistant/.homeassistant/www/downloads/camera/driveway/
|
||||||
- "/home/homeassistant/.homeassistant/www/downloads/camera/frontdoor/"
|
- /home/homeassistant/.homeassistant/www/downloads/camera/frontdoor/
|
||||||
- "/home/homeassistant/.homeassistant/www/downloads/camera/kitchen/"
|
- /home/homeassistant/.homeassistant/www/downloads/camera/kitchen/
|
||||||
- "/home/homeassistant/.homeassistant/www/downloads/camera/frontroom/"
|
- /home/homeassistant/.homeassistant/www/downloads/camera/frontroom/
|
||||||
- "/home/homeassistant/.homeassistant/www/downloads/camera/3dprinter/"
|
- /home/homeassistant/.homeassistant/www/downloads/camera/3dprinter/
|
||||||
|
|
||||||
sun:
|
sun:
|
||||||
alexa:
|
alexa:
|
||||||
|
@ -32,8 +32,6 @@ discovery:
|
||||||
ignore:
|
ignore:
|
||||||
- homekit
|
- homekit
|
||||||
|
|
||||||
# shopping_list:
|
|
||||||
|
|
||||||
octoprint:
|
octoprint:
|
||||||
host: !secret octoprint_ip
|
host: !secret octoprint_ip
|
||||||
api_key: !secret octoprint_key
|
api_key: !secret octoprint_key
|
||||||
|
@ -50,33 +48,15 @@ homekit:
|
||||||
include_entities:
|
include_entities:
|
||||||
- binary_sensor.door_window_sensor_158d00040ad8fc # Back Door
|
- binary_sensor.door_window_sensor_158d00040ad8fc # Back Door
|
||||||
- binary_sensor.door_window_sensor_158d000424a6d6 # Front Door
|
- binary_sensor.door_window_sensor_158d000424a6d6 # Front Door
|
||||||
- binary_sensor.door_window_sensor_158d0004248d5b
|
- binary_sensor.door_window_sensor_158d0004248d5b # Single Car Garage
|
||||||
- binary_sensor.door_window_sensor_158d0004231f7b
|
- binary_sensor.door_window_sensor_158d0004231f7b # Double Car Garage
|
||||||
|
|
||||||
mobile_app:
|
mobile_app:
|
||||||
|
|
||||||
# map:
|
|
||||||
# updater:
|
|
||||||
# logbook:
|
|
||||||
# history:
|
|
||||||
# recorder:
|
|
||||||
# db_url: !secret my_sql_url
|
|
||||||
# influxdb:
|
|
||||||
# host: 192.168.1.125
|
|
||||||
# include:
|
|
||||||
# entities:
|
|
||||||
# - sensor.dining_room_thermostat_temperature
|
|
||||||
# - sensor.downstairs_multi_sensor_temperature
|
|
||||||
# - sensor.front_room_multi_sensor_temperature
|
|
||||||
# - sensor.guest_bedroom_multi_sensor_temperature
|
|
||||||
# - sensor.tv_multi_sensor_temperature
|
|
||||||
|
|
||||||
websocket_api:
|
websocket_api:
|
||||||
python_script:
|
python_script:
|
||||||
logger: !include logging.yaml
|
logger: !include logging.yaml
|
||||||
|
|
||||||
zeroconf:
|
zeroconf:
|
||||||
#owntracks:
|
|
||||||
system_health:
|
system_health:
|
||||||
|
|
||||||
life360:
|
life360:
|
||||||
|
@ -123,63 +103,4 @@ emulated_hue:
|
||||||
- light
|
- light
|
||||||
- switch
|
- switch
|
||||||
- input_boolean
|
- input_boolean
|
||||||
|
- group
|
||||||
panel_iframe:
|
|
||||||
front_room_ha:
|
|
||||||
title: Front Room HA
|
|
||||||
icon: mdi:home-assistant
|
|
||||||
url: !secret front_room_ha_url
|
|
||||||
tv_room_ha:
|
|
||||||
title: TV Room HA
|
|
||||||
icon: mdi:home-assistant
|
|
||||||
url: !secret tv_room_ha_url
|
|
||||||
snapcast_server:
|
|
||||||
title: Snapcast Server
|
|
||||||
icon: mdi:music
|
|
||||||
url: !secret snapcast_server_url
|
|
||||||
|
|
||||||
ios:
|
|
||||||
push:
|
|
||||||
categories:
|
|
||||||
- name: Single Car Garage Door
|
|
||||||
identifier: "1CAR_GARAGE"
|
|
||||||
actions:
|
|
||||||
- identifier: "1CAR_GARAGE_CLOSE"
|
|
||||||
title: "Close Garage Door"
|
|
||||||
activationMode: "background"
|
|
||||||
authenticationRequired: yes
|
|
||||||
destructive: yes
|
|
||||||
behavior: "default"
|
|
||||||
- name: Two Car Garage Door
|
|
||||||
identifier: "2CAR_GARAGE"
|
|
||||||
actions:
|
|
||||||
- identifier: "2CAR_GARAGE_CLOSE"
|
|
||||||
title: "Close Garage Door"
|
|
||||||
activationMode: "background"
|
|
||||||
authenticationRequired: yes
|
|
||||||
destructive: yes
|
|
||||||
behavior: "default"
|
|
||||||
- name: Trash Recycle
|
|
||||||
identifier: "trash_recycle"
|
|
||||||
actions:
|
|
||||||
- identifier: "TRASH_LEFT"
|
|
||||||
title: "Done"
|
|
||||||
activationMode: "background"
|
|
||||||
authenticationRequired: yes
|
|
||||||
destructive: yes
|
|
||||||
behavior: "default"
|
|
||||||
- identifier: "TRASH_REMIND_LATER"
|
|
||||||
title: "Remind Later"
|
|
||||||
activationMode: "background"
|
|
||||||
authenticationRequired: yes
|
|
||||||
destructive: yes
|
|
||||||
behavior: "default"
|
|
||||||
- name: Welcome Home
|
|
||||||
identifier: "welcome_home"
|
|
||||||
actions:
|
|
||||||
- identifier: "DISABLE_SECURITY"
|
|
||||||
title: "Yes"
|
|
||||||
activationMode: "background"
|
|
||||||
authenticationRequired: yes
|
|
||||||
destructive: yes
|
|
||||||
behavior: "default"
|
|
||||||
|
|
|
@ -18,9 +18,9 @@ from homeassistant.const import (
|
||||||
CONF_SENSORS,
|
CONF_SENSORS,
|
||||||
CONF_SSL,
|
CONF_SSL,
|
||||||
CONTENT_TYPE_JSON,
|
CONTENT_TYPE_JSON,
|
||||||
|
PERCENTAGE,
|
||||||
TEMP_CELSIUS,
|
TEMP_CELSIUS,
|
||||||
TIME_SECONDS,
|
TIME_SECONDS,
|
||||||
UNIT_PERCENTAGE,
|
|
||||||
)
|
)
|
||||||
from homeassistant.helpers import discovery
|
from homeassistant.helpers import discovery
|
||||||
import homeassistant.helpers.config_validation as cv
|
import homeassistant.helpers.config_validation as cv
|
||||||
|
@ -76,7 +76,7 @@ SENSOR_TYPES = {
|
||||||
"job",
|
"job",
|
||||||
"progress",
|
"progress",
|
||||||
"completion",
|
"completion",
|
||||||
UNIT_PERCENTAGE,
|
PERCENTAGE,
|
||||||
"mdi:file-percent",
|
"mdi:file-percent",
|
||||||
],
|
],
|
||||||
"Time Remaining": [
|
"Time Remaining": [
|
||||||
|
@ -146,9 +146,10 @@ def setup(hass, config):
|
||||||
|
|
||||||
for printer in config[DOMAIN]:
|
for printer in config[DOMAIN]:
|
||||||
name = printer[CONF_NAME]
|
name = printer[CONF_NAME]
|
||||||
ssl = "s" if printer[CONF_SSL] else ""
|
protocol = "https" if printer[CONF_SSL] else "http"
|
||||||
base_url = "http{}://{}:{}{}api/".format(
|
base_url = (
|
||||||
ssl, printer[CONF_HOST], printer[CONF_PORT], printer[CONF_PATH]
|
f"{protocol}://{printer[CONF_HOST]}:{printer[CONF_PORT]}"
|
||||||
|
f"{printer[CONF_PATH]}api/"
|
||||||
)
|
)
|
||||||
api_key = printer[CONF_API_KEY]
|
api_key = printer[CONF_API_KEY]
|
||||||
number_of_tools = printer[CONF_NUMBER_OF_TOOLS]
|
number_of_tools = printer[CONF_NUMBER_OF_TOOLS]
|
||||||
|
@ -230,7 +231,6 @@ class OctoPrintAPI:
|
||||||
return self.printer_last_reading[0]
|
return self.printer_last_reading[0]
|
||||||
|
|
||||||
url = self.api_url + endpoint
|
url = self.api_url + endpoint
|
||||||
|
|
||||||
try:
|
try:
|
||||||
response = requests.get(url, headers=self.headers, timeout=9)
|
response = requests.get(url, headers=self.headers, timeout=9)
|
||||||
response.raise_for_status()
|
response.raise_for_status()
|
||||||
|
|
|
@ -3,7 +3,7 @@ import logging
|
||||||
|
|
||||||
import requests
|
import requests
|
||||||
|
|
||||||
from homeassistant.components.binary_sensor import BinarySensorDevice
|
from homeassistant.components.binary_sensor import BinarySensorEntity
|
||||||
|
|
||||||
from . import BINARY_SENSOR_TYPES, DOMAIN as COMPONENT_DOMAIN
|
from . import BINARY_SENSOR_TYPES, DOMAIN as COMPONENT_DOMAIN
|
||||||
|
|
||||||
|
@ -36,7 +36,7 @@ def setup_platform(hass, config, add_entities, discovery_info=None):
|
||||||
add_entities(devices, True)
|
add_entities(devices, True)
|
||||||
|
|
||||||
|
|
||||||
class OctoPrintBinarySensor(BinarySensorDevice):
|
class OctoPrintBinarySensor(BinarySensorEntity):
|
||||||
"""Representation an OctoPrint binary sensor."""
|
"""Representation an OctoPrint binary sensor."""
|
||||||
|
|
||||||
def __init__(
|
def __init__(
|
||||||
|
|
|
@ -3,7 +3,7 @@ import logging
|
||||||
|
|
||||||
import requests
|
import requests
|
||||||
|
|
||||||
from homeassistant.const import TEMP_CELSIUS, UNIT_PERCENTAGE
|
from homeassistant.const import PERCENTAGE, TEMP_CELSIUS
|
||||||
from homeassistant.helpers.entity import Entity
|
from homeassistant.helpers.entity import Entity
|
||||||
|
|
||||||
from . import DOMAIN as COMPONENT_DOMAIN, SENSOR_TYPES
|
from . import DOMAIN as COMPONENT_DOMAIN, SENSOR_TYPES
|
||||||
|
@ -32,7 +32,7 @@ def setup_platform(hass, config, add_entities, discovery_info=None):
|
||||||
"If you do not want to have your printer on <br />"
|
"If you do not want to have your printer on <br />"
|
||||||
" at all times, and you would like to monitor <br /> "
|
" at all times, and you would like to monitor <br /> "
|
||||||
"temperatures, please add <br />"
|
"temperatures, please add <br />"
|
||||||
"bed and/or number_of_tools to your configuration <br />"
|
"bed and/or number_of_tools to your configuration <br />"
|
||||||
"and restart.",
|
"and restart.",
|
||||||
title=NOTIFICATION_TITLE,
|
title=NOTIFICATION_TITLE,
|
||||||
notification_id=NOTIFICATION_ID,
|
notification_id=NOTIFICATION_ID,
|
||||||
|
@ -91,7 +91,7 @@ class OctoPrintSensor(Entity):
|
||||||
if tool is None:
|
if tool is None:
|
||||||
self._name = f"{sensor_name} {condition}"
|
self._name = f"{sensor_name} {condition}"
|
||||||
else:
|
else:
|
||||||
self._name = "{} {} {} {}".format(sensor_name, condition, tool, "temp")
|
self._name = f"{sensor_name} {condition} {tool} temp"
|
||||||
self.sensor_type = sensor_type
|
self.sensor_type = sensor_type
|
||||||
self.api = api
|
self.api = api
|
||||||
self._state = None
|
self._state = None
|
||||||
|
@ -111,7 +111,7 @@ class OctoPrintSensor(Entity):
|
||||||
def state(self):
|
def state(self):
|
||||||
"""Return the state of the sensor."""
|
"""Return the state of the sensor."""
|
||||||
sensor_unit = self.unit_of_measurement
|
sensor_unit = self.unit_of_measurement
|
||||||
if sensor_unit in (TEMP_CELSIUS, UNIT_PERCENTAGE):
|
if sensor_unit in (TEMP_CELSIUS, PERCENTAGE):
|
||||||
# API sometimes returns null and not 0
|
# API sometimes returns null and not 0
|
||||||
if self._state is None:
|
if self._state is None:
|
||||||
self._state = 0
|
self._state = 0
|
||||||
|
|
|
@ -20,7 +20,6 @@ logs:
|
||||||
homeassistant.components.wemo: critical
|
homeassistant.components.wemo: critical
|
||||||
homeassistant.components.sensor: critical
|
homeassistant.components.sensor: critical
|
||||||
homeassistant.components.cloud.iot: warning
|
homeassistant.components.cloud.iot: warning
|
||||||
homeassistant.components.hue: critical
|
|
||||||
homeassistant.components.http: warning
|
homeassistant.components.http: warning
|
||||||
homeassistant.components.camera: warning
|
homeassistant.components.camera: warning
|
||||||
homeassistant.components.zwave: warning
|
homeassistant.components.zwave: warning
|
||||||
|
|
|
@ -132,7 +132,6 @@ cards:
|
||||||
- automation.home_security_system_watchdog_10_minutes
|
- automation.home_security_system_watchdog_10_minutes
|
||||||
- automation.home_security_system_watchdog_30_minutes
|
- automation.home_security_system_watchdog_30_minutes
|
||||||
- automation.notify_home_security_status_change
|
- automation.notify_home_security_status_change
|
||||||
- automation.night_homesecurity_on
|
|
||||||
- automation.turn_on_thermostat_upon_reaching_home
|
- automation.turn_on_thermostat_upon_reaching_home
|
||||||
|
|
||||||
- type: conditional
|
- type: conditional
|
||||||
|
@ -178,12 +177,10 @@ cards:
|
||||||
entities:
|
entities:
|
||||||
- automation.reset_trash_reminders
|
- automation.reset_trash_reminders
|
||||||
- automation.restore_trash_recycle_settings_on_startup
|
- automation.restore_trash_recycle_settings_on_startup
|
||||||
- automation.trash_and_recycle_bin_left_outside_already
|
|
||||||
- automation.trash_and_recycle_pickup_reminder
|
- automation.trash_and_recycle_pickup_reminder
|
||||||
- automation.trash_pickup_day_changed
|
- automation.trash_pickup_day_changed
|
||||||
- automation.recycle_pickup_day_changed
|
- automation.recycle_pickup_day_changed
|
||||||
- automation.recycle_pickup_week_changed
|
- automation.recycle_pickup_week_changed
|
||||||
- automation.remind_later
|
|
||||||
|
|
||||||
- type: entities
|
- type: entities
|
||||||
title: Camera Automations
|
title: Camera Automations
|
||||||
|
|
|
@ -108,7 +108,6 @@ binary_sensor:
|
||||||
image_processing:
|
image_processing:
|
||||||
- platform: tensorflow
|
- platform: tensorflow
|
||||||
scan_interval: 10000
|
scan_interval: 10000
|
||||||
# confidence: 75
|
|
||||||
source:
|
source:
|
||||||
- entity_id: camera.frontdoor_camera
|
- entity_id: camera.frontdoor_camera
|
||||||
- entity_id: camera.driveway_camera
|
- entity_id: camera.driveway_camera
|
||||||
|
@ -121,11 +120,6 @@ image_processing:
|
||||||
- "/home/homeassistant/.homeassistant/www/downloads/camera/{{- camera_entity.split('.')[1].split('_')[0] -}}/{{ camera_entity.split('.')[1].split('_')[0] }}_{{ now().strftime('%Y%m%d_%H%M%S') }}.jpg"
|
- "/home/homeassistant/.homeassistant/www/downloads/camera/{{- camera_entity.split('.')[1].split('_')[0] -}}/{{ camera_entity.split('.')[1].split('_')[0] }}_{{ now().strftime('%Y%m%d_%H%M%S') }}.jpg"
|
||||||
model:
|
model:
|
||||||
graph: /home/homeassistant/.homeassistant/tensorflow/models/efficientdet_d0_coco17_tpu-32/
|
graph: /home/homeassistant/.homeassistant/tensorflow/models/efficientdet_d0_coco17_tpu-32/
|
||||||
# graph: /home/homeassistant/.homeassistant/tensorflow/frozen_inference_graph.pb
|
|
||||||
# categories:
|
|
||||||
# - person
|
|
||||||
# - car
|
|
||||||
# - truck
|
|
||||||
|
|
||||||
input_label:
|
input_label:
|
||||||
current_stream:
|
current_stream:
|
||||||
|
@ -214,7 +208,7 @@ automation:
|
||||||
action:
|
action:
|
||||||
- condition: template
|
- condition: template
|
||||||
value_template: "{{ states('input_boolean.notify_camera_alerts') == 'on' }}"
|
value_template: "{{ states('input_boolean.notify_camera_alerts') == 'on' }}"
|
||||||
- service: script.frontdoor_cam
|
- service: script.frontdoor_cam # change to front door camera stream on chromecast
|
||||||
- condition: template
|
- condition: template
|
||||||
value_template: "{{ states('alarm_control_panel.home') == 'armed_home' or states('alarm_control_panel.home') == 'armed_away' }}"
|
value_template: "{{ states('alarm_control_panel.home') == 'armed_home' or states('alarm_control_panel.home') == 'armed_away' }}"
|
||||||
- service: image_processing.scan
|
- service: image_processing.scan
|
||||||
|
@ -234,6 +228,7 @@ automation:
|
||||||
{% else %}
|
{% else %}
|
||||||
false
|
false
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
- service: script.voice_notify
|
- service: script.voice_notify
|
||||||
data_template:
|
data_template:
|
||||||
message: >-
|
message: >-
|
||||||
|
@ -247,6 +242,7 @@ automation:
|
||||||
{{ " detected in the front yard." }}
|
{{ " detected in the front yard." }}
|
||||||
{%- endif -%}
|
{%- endif -%}
|
||||||
greeting: "no"
|
greeting: "no"
|
||||||
|
|
||||||
- service: notify.notify_smtp
|
- service: notify.notify_smtp
|
||||||
data_template:
|
data_template:
|
||||||
title: 'Front door motion {{ now().strftime("%d %h %Y, %I:%M:%S %p") }}'
|
title: 'Front door motion {{ now().strftime("%d %h %Y, %I:%M:%S %p") }}'
|
||||||
|
@ -260,11 +256,30 @@ automation:
|
||||||
{%- endfor -%}
|
{%- endfor -%}
|
||||||
{{ " detected in the front yard on " ~ now().strftime("%d %h %Y, at %I:%M:%S %p") ~ ". Please see the images below." }}
|
{{ " detected in the front yard on " ~ now().strftime("%d %h %Y, at %I:%M:%S %p") ~ ". Please see the images below." }}
|
||||||
{% else %}
|
{% else %}
|
||||||
Motion detected in the front door on {{ now().strftime("%d %h %Y, at %I:%M:%S %p") }}. Please see the images below.
|
Motion detected at the front door on {{ now().strftime("%d %h %Y, at %I:%M:%S %p") }}. Please see the images below.
|
||||||
{%- endif -%}
|
{%- endif -%}
|
||||||
data:
|
data:
|
||||||
images:
|
images:
|
||||||
- "/home/homeassistant/.homeassistant/www/downloads/camera/frontdoor/frontdoor_latest.jpg"
|
- "/home/homeassistant/.homeassistant/www/downloads/camera/frontdoor/frontdoor_latest.jpg"
|
||||||
|
|
||||||
|
- service: script.notify_me_with_picture
|
||||||
|
data_template:
|
||||||
|
title: "Front Door Motion"
|
||||||
|
message: >
|
||||||
|
{%- set e_id = "image_processing.tensorflow_frontdoor_camera" -%}
|
||||||
|
{%- if state_attr(e_id, 'summary') -%}
|
||||||
|
{%- set count = state_attr(e_id, 'summary') | count -%}
|
||||||
|
{%- for x in state_attr(e_id, 'summary') | list -%}
|
||||||
|
{%- if loop.first %}{% elif loop.last %}, and {% else %}, {% endif -%}
|
||||||
|
{{- state_attr(e_id, 'summary')[x]}} {{ x ~ 's' if state_attr(e_id, 'summary')[x] > 1 else x }}
|
||||||
|
{%- endfor -%}
|
||||||
|
{{ " detected in the front yard on " ~ now().strftime("%d %h %Y, at %I:%M:%S %p") ~ ". Please see the images below." }}
|
||||||
|
{% else %}
|
||||||
|
Motion detected at the front door on {{ now().strftime("%d %h %Y, at %I:%M:%S %p") }}. Please see the images below.
|
||||||
|
{%- endif %}
|
||||||
|
file: "/home/homeassistant/.homeassistant/www/downloads/camera/frontdoor/frontdoor_latest.jpg"
|
||||||
|
caption: "Front Door Motion"
|
||||||
|
|
||||||
- condition: template
|
- condition: template
|
||||||
value_template: >
|
value_template: >
|
||||||
{% if states('binary_sensor.door_window_sensor_158d0004248d5b') == "on" or
|
{% if states('binary_sensor.door_window_sensor_158d0004248d5b') == "on" or
|
||||||
|
@ -313,6 +328,7 @@ automation:
|
||||||
{% else %}
|
{% else %}
|
||||||
false
|
false
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
- service: script.voice_notify
|
- service: script.voice_notify
|
||||||
data_template:
|
data_template:
|
||||||
message: >-
|
message: >-
|
||||||
|
@ -325,6 +341,25 @@ automation:
|
||||||
{%- endfor -%}
|
{%- endfor -%}
|
||||||
{{ " detected in the driveway" }}
|
{{ " detected in the driveway" }}
|
||||||
{%- endif -%}
|
{%- endif -%}
|
||||||
|
|
||||||
|
- service: script.notify_me_with_picture
|
||||||
|
data_template:
|
||||||
|
title: "Driveway Motion"
|
||||||
|
message: >
|
||||||
|
{%- set e_id = "image_processing.tensorflow_driveway_camera" -%}
|
||||||
|
{%- if state_attr(e_id, 'summary') -%}
|
||||||
|
{%- set count = state_attr(e_id, 'summary') | count -%}
|
||||||
|
{%- for x in state_attr(e_id, 'summary') | list -%}
|
||||||
|
{%- if loop.first %}{% elif loop.last %}, and {% else %}, {% endif -%}
|
||||||
|
{{- state_attr(e_id, 'summary')[x]}} {{ x ~ 's' if state_attr(e_id, 'summary')[x] > 1 else x }}
|
||||||
|
{%- endfor -%}
|
||||||
|
{{ " detected in the driveway on " ~ now().strftime("%d %h %Y, at %I:%M:%S %p") ~ ". Please see the images below." }}
|
||||||
|
{% else %}
|
||||||
|
Motion detected at the driveway on {{ now().strftime("%d %h %Y, at %I:%M:%S %p") }}. Please see the images below.
|
||||||
|
{%- endif -%}
|
||||||
|
file: "/home/homeassistant/.homeassistant/www/downloads/camera/driveway/driveway_latest.jpg"
|
||||||
|
caption: "Driveway Motion"
|
||||||
|
|
||||||
- service: notify.notify_smtp
|
- service: notify.notify_smtp
|
||||||
data_template:
|
data_template:
|
||||||
title: 'Driveway motion {{ now().strftime("%d %h %Y, %I:%M:%S %p") }}'
|
title: 'Driveway motion {{ now().strftime("%d %h %Y, %I:%M:%S %p") }}'
|
||||||
|
@ -343,6 +378,7 @@ automation:
|
||||||
data:
|
data:
|
||||||
images:
|
images:
|
||||||
- "/home/homeassistant/.homeassistant/www/downloads/camera/driveway/driveway_latest.jpg"
|
- "/home/homeassistant/.homeassistant/www/downloads/camera/driveway/driveway_latest.jpg"
|
||||||
|
|
||||||
- condition: template
|
- condition: template
|
||||||
value_template: >
|
value_template: >
|
||||||
{% if states('binary_sensor.door_window_sensor_158d0004248d5b') == "on" or
|
{% if states('binary_sensor.door_window_sensor_158d0004248d5b') == "on" or
|
||||||
|
@ -351,6 +387,7 @@ automation:
|
||||||
{% else %}
|
{% else %}
|
||||||
False
|
False
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
- service: image_processing.scan
|
- service: image_processing.scan
|
||||||
data_template:
|
data_template:
|
||||||
entity_id: image_processing.tensorflow_garage_camera
|
entity_id: image_processing.tensorflow_garage_camera
|
||||||
|
@ -400,6 +437,7 @@ automation:
|
||||||
{% else %}
|
{% else %}
|
||||||
false
|
false
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
- service: script.voice_notify
|
- service: script.voice_notify
|
||||||
data_template:
|
data_template:
|
||||||
message: >-
|
message: >-
|
||||||
|
@ -412,6 +450,25 @@ automation:
|
||||||
{%- endfor -%}
|
{%- endfor -%}
|
||||||
{{ " detected in the garage." }}
|
{{ " detected in the garage." }}
|
||||||
{%- endif -%}
|
{%- endif -%}
|
||||||
|
|
||||||
|
- service: script.notify_me_with_picture
|
||||||
|
data_template:
|
||||||
|
title: "Garage Motion"
|
||||||
|
message: >
|
||||||
|
{%- set e_id = "image_processing.tensorflow_garage_camera" -%}
|
||||||
|
{%- if state_attr(e_id, 'summary') -%}
|
||||||
|
{%- set count = state_attr(e_id, 'summary') | count -%}
|
||||||
|
{%- for x in state_attr(e_id, 'summary') | list -%}
|
||||||
|
{%- if loop.first %}{% elif loop.last %}, and {% else %}, {% endif -%}
|
||||||
|
{{- state_attr(e_id, 'summary')[x]}} {{ x ~ 's' if state_attr(e_id, 'summary')[x] > 1 else x }}
|
||||||
|
{%- endfor -%}
|
||||||
|
{{ " detected in the garage on " ~ now().strftime("%d %h %Y, at %I:%M:%S %p") ~ ". Please see the images below." }}
|
||||||
|
{% else %}
|
||||||
|
Motion detected in the garage on {{ now().strftime("%d %h %Y, at %I:%M:%S %p") }}. Please see the images below.
|
||||||
|
{%- endif -%}
|
||||||
|
file: "/home/homeassistant/.homeassistant/www/downloads/camera/garage/garage_latest.jpg"
|
||||||
|
caption: "Garage Motion"
|
||||||
|
|
||||||
- service: notify.notify_smtp
|
- service: notify.notify_smtp
|
||||||
data_template:
|
data_template:
|
||||||
title: 'Garage motion {{ now().strftime("%d %h %Y, %I:%M:%S %p") }}'
|
title: 'Garage motion {{ now().strftime("%d %h %Y, %I:%M:%S %p") }}'
|
||||||
|
@ -466,6 +523,7 @@ automation:
|
||||||
{% else %}
|
{% else %}
|
||||||
false
|
false
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
- service: script.voice_notify
|
- service: script.voice_notify
|
||||||
data_template:
|
data_template:
|
||||||
message: >-
|
message: >-
|
||||||
|
@ -478,6 +536,25 @@ automation:
|
||||||
{%- endfor -%}
|
{%- endfor -%}
|
||||||
{{ " detected in the backyard." }}
|
{{ " detected in the backyard." }}
|
||||||
{%- endif -%}
|
{%- endif -%}
|
||||||
|
|
||||||
|
- service: script.notify_me_with_picture
|
||||||
|
data_template:
|
||||||
|
title: "Backyardge Motion"
|
||||||
|
message: >
|
||||||
|
{%- set e_id = "image_processing.tensorflow_patio_camera" -%}
|
||||||
|
{%- if state_attr(e_id, 'summary') -%}
|
||||||
|
{%- set count = state_attr(e_id, 'summary') | count -%}
|
||||||
|
{%- for x in state_attr(e_id, 'summary') | list -%}
|
||||||
|
{%- if loop.first %}{% elif loop.last %}, and {% else %}, {% endif -%}
|
||||||
|
{{- state_attr(e_id, 'summary')[x]}} {{ x ~ 's' if state_attr(e_id, 'summary')[x] > 1 else x }}
|
||||||
|
{%- endfor -%}
|
||||||
|
{{ " detected in the backyard on " ~ now().strftime("%d %h %Y, at %I:%M:%S %p") ~ ". Please see the images below." }}
|
||||||
|
{% else %}
|
||||||
|
Motion detected in the backyard on {{ now().strftime("%d %h %Y, at %I:%M:%S %p") }}. Please see the images below.
|
||||||
|
{%- endif -%}
|
||||||
|
file: "/home/homeassistant/.homeassistant/www/downloads/camera/patio/patio_latest.jpg"
|
||||||
|
caption: "Backyard Motion"
|
||||||
|
|
||||||
- service: notify.notify_smtp
|
- service: notify.notify_smtp
|
||||||
data_template:
|
data_template:
|
||||||
title: 'Backyard motion {{ now().strftime("%d %h %Y, %I:%M:%S %p") }}'
|
title: 'Backyard motion {{ now().strftime("%d %h %Y, %I:%M:%S %p") }}'
|
||||||
|
@ -566,6 +643,26 @@ automation:
|
||||||
"{{ '/home/homeassistant/.homeassistant/www/downloads/camera/garage/garage_' ~
|
"{{ '/home/homeassistant/.homeassistant/www/downloads/camera/garage/garage_' ~
|
||||||
(states.binary_sensor.motion_sensor_158d00024ee084.last_updated ~ '').replace('-','_')
|
(states.binary_sensor.motion_sensor_158d00024ee084.last_updated ~ '').replace('-','_')
|
||||||
.replace(' ', '_').replace(':','_').replace('.','_').replace('+','_') ~ '.jpg' }}"
|
.replace(' ', '_').replace(':','_').replace('.','_').replace('+','_') ~ '.jpg' }}"
|
||||||
|
|
||||||
|
- service: notify.telegram
|
||||||
|
data_template:
|
||||||
|
title: "Front Door Motion"
|
||||||
|
message: "Motion Detected At Front Door, Check images:"
|
||||||
|
data:
|
||||||
|
photo:
|
||||||
|
- file: "{{ '/home/homeassistant/.homeassistant/www/downloads/camera/frontdoor/frontdoor_' ~
|
||||||
|
(states.binary_sensor.motion_sensor_158d00024ee084.last_updated ~ '').replace('-','_')
|
||||||
|
.replace(' ', '_').replace(':','_').replace('.','_').replace('+','_') ~ '.jpg' }}"
|
||||||
|
caption: "Front Door"
|
||||||
|
- file: "{{ '/home/homeassistant/.homeassistant/www/downloads/camera/driveway/driveway_' ~
|
||||||
|
(states.binary_sensor.motion_sensor_158d00024ee084.last_updated ~ '').replace('-','_')
|
||||||
|
.replace(' ', '_').replace(':','_').replace('.','_').replace('+','_') ~ '.jpg' }}"
|
||||||
|
caption: "Driveway"
|
||||||
|
- file: "{{ '/home/homeassistant/.homeassistant/www/downloads/camera/garage/garage_' ~
|
||||||
|
(states.binary_sensor.motion_sensor_158d00024ee084.last_updated ~ '').replace('-','_')
|
||||||
|
.replace(' ', '_').replace(':','_').replace('.','_').replace('+','_') ~ '.jpg' }}"
|
||||||
|
caption: "Garage"
|
||||||
|
|
||||||
- service: notify.notify_smtp
|
- service: notify.notify_smtp
|
||||||
data_template:
|
data_template:
|
||||||
title: 'Front door motion {{ now().strftime("%d %h %Y, %I:%M:%S %p") }}'
|
title: 'Front door motion {{ now().strftime("%d %h %Y, %I:%M:%S %p") }}'
|
||||||
|
@ -581,8 +678,10 @@ automation:
|
||||||
- "{{ '/home/homeassistant/.homeassistant/www/downloads/camera/garage/garage_' ~
|
- "{{ '/home/homeassistant/.homeassistant/www/downloads/camera/garage/garage_' ~
|
||||||
(states.binary_sensor.motion_sensor_158d00024ee084.last_updated ~ '').replace('-','_')
|
(states.binary_sensor.motion_sensor_158d00024ee084.last_updated ~ '').replace('-','_')
|
||||||
.replace(' ', '_').replace(':','_').replace('.','_').replace('+','_') ~ '.jpg' }}"
|
.replace(' ', '_').replace(':','_').replace('.','_').replace('+','_') ~ '.jpg' }}"
|
||||||
|
|
||||||
- condition: template
|
- condition: template
|
||||||
value_template: "{{ states('device_tracker.life360_suresh') == 'home' }}"
|
value_template: "{{ states('device_tracker.life360_suresh') == 'home' }}"
|
||||||
|
|
||||||
- service: notify.ios_devices
|
- service: notify.ios_devices
|
||||||
data_template:
|
data_template:
|
||||||
message: "Check Front Door camera!"
|
message: "Check Front Door camera!"
|
||||||
|
@ -636,6 +735,26 @@ automation:
|
||||||
"{{ '/home/homeassistant/.homeassistant/www/downloads/camera/garage/garage_' ~
|
"{{ '/home/homeassistant/.homeassistant/www/downloads/camera/garage/garage_' ~
|
||||||
(states.binary_sensor.motion_sensor_158d00024e57fb.last_updated ~ '').replace('-','_')
|
(states.binary_sensor.motion_sensor_158d00024e57fb.last_updated ~ '').replace('-','_')
|
||||||
.replace(' ', '_').replace(':','_').replace('.','_').replace('+','_') ~ '.jpg' }}"
|
.replace(' ', '_').replace(':','_').replace('.','_').replace('+','_') ~ '.jpg' }}"
|
||||||
|
|
||||||
|
- service: notify.telegram
|
||||||
|
data_template:
|
||||||
|
title: "Driveway Motion"
|
||||||
|
message: "Motion Detected At Driveway, Check images:"
|
||||||
|
data:
|
||||||
|
photo:
|
||||||
|
- file: "{{ '/home/homeassistant/.homeassistant/www/downloads/camera/frontdoor/frontdoor_' ~
|
||||||
|
(states.binary_sensor.motion_sensor_158d00024e57fb.last_updated ~ '').replace('-','_')
|
||||||
|
.replace(' ', '_').replace(':','_').replace('.','_').replace('+','_') ~ '.jpg' }}"
|
||||||
|
caption: "Front Door"
|
||||||
|
- file: "{{ '/home/homeassistant/.homeassistant/www/downloads/camera/driveway/driveway_' ~
|
||||||
|
(states.binary_sensor.motion_sensor_158d00024e57fb.last_updated ~ '').replace('-','_')
|
||||||
|
.replace(' ', '_').replace(':','_').replace('.','_').replace('+','_') ~ '.jpg' }}"
|
||||||
|
caption: "Driveway"
|
||||||
|
- file: "{{ '/home/homeassistant/.homeassistant/www/downloads/camera/garage/garage_' ~
|
||||||
|
(states.binary_sensor.motion_sensor_158d00024e57fb.last_updated ~ '').replace('-','_')
|
||||||
|
.replace(' ', '_').replace(':','_').replace('.','_').replace('+','_') ~ '.jpg' }}"
|
||||||
|
caption: "Garage"
|
||||||
|
|
||||||
- service: notify.notify_smtp
|
- service: notify.notify_smtp
|
||||||
data_template:
|
data_template:
|
||||||
title: 'Driveway motion {{ now().strftime("%d %h %Y, %I:%M:%S %p") }}'
|
title: 'Driveway motion {{ now().strftime("%d %h %Y, %I:%M:%S %p") }}'
|
||||||
|
@ -651,6 +770,7 @@ automation:
|
||||||
- "{{ '/home/homeassistant/.homeassistant/www/downloads/camera/garage/garage_' ~
|
- "{{ '/home/homeassistant/.homeassistant/www/downloads/camera/garage/garage_' ~
|
||||||
(states.binary_sensor.motion_sensor_158d00024e57fb.last_updated ~ '').replace('-','_')
|
(states.binary_sensor.motion_sensor_158d00024e57fb.last_updated ~ '').replace('-','_')
|
||||||
.replace(' ', '_').replace(':','_').replace('.','_').replace('+','_') ~ '.jpg' }}"
|
.replace(' ', '_').replace(':','_').replace('.','_').replace('+','_') ~ '.jpg' }}"
|
||||||
|
|
||||||
- condition: template
|
- condition: template
|
||||||
value_template: "{{ states('device_tracker.life360_suresh') == 'home' }}"
|
value_template: "{{ states('device_tracker.life360_suresh') == 'home' }}"
|
||||||
- service: notify.ios_devices
|
- service: notify.ios_devices
|
||||||
|
@ -696,6 +816,7 @@ automation:
|
||||||
{% else %}
|
{% else %}
|
||||||
false
|
false
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
- service: camera.snapshot
|
- service: camera.snapshot
|
||||||
data_template:
|
data_template:
|
||||||
entity_id: "camera.patio_camera"
|
entity_id: "camera.patio_camera"
|
||||||
|
@ -703,6 +824,7 @@ automation:
|
||||||
"{{ '/home/homeassistant/.homeassistant/www/downloads/camera/patio/patio_' ~
|
"{{ '/home/homeassistant/.homeassistant/www/downloads/camera/patio/patio_' ~
|
||||||
(states.binary_sensor.motion_sensor_158d00024e842c.last_updated ~ '').replace('-','_')
|
(states.binary_sensor.motion_sensor_158d00024e842c.last_updated ~ '').replace('-','_')
|
||||||
.replace(' ', '_').replace(':','_').replace('.','_').replace('+','_') ~ '.jpg' }}"
|
.replace(' ', '_').replace(':','_').replace('.','_').replace('+','_') ~ '.jpg' }}"
|
||||||
|
|
||||||
- service: camera.snapshot
|
- service: camera.snapshot
|
||||||
data_template:
|
data_template:
|
||||||
entity_id: "camera.playarea_camera"
|
entity_id: "camera.playarea_camera"
|
||||||
|
@ -710,6 +832,22 @@ automation:
|
||||||
"{{ '/home/homeassistant/.homeassistant/www/downloads/camera/playarea/playarea_' ~
|
"{{ '/home/homeassistant/.homeassistant/www/downloads/camera/playarea/playarea_' ~
|
||||||
(states.binary_sensor.motion_sensor_158d00024e842c.last_updated ~ '').replace('-','_')
|
(states.binary_sensor.motion_sensor_158d00024e842c.last_updated ~ '').replace('-','_')
|
||||||
.replace(' ', '_').replace(':','_').replace('.','_').replace('+','_') ~ '.jpg' }}"
|
.replace(' ', '_').replace(':','_').replace('.','_').replace('+','_') ~ '.jpg' }}"
|
||||||
|
|
||||||
|
- service: notify.telegram
|
||||||
|
data_template:
|
||||||
|
title: "Backyard Motion"
|
||||||
|
message: "Motion Detected in the Backyard, Check images:"
|
||||||
|
data:
|
||||||
|
photo:
|
||||||
|
- file: "{{ '/home/homeassistant/.homeassistant/www/downloads/camera/patio/patio_' ~
|
||||||
|
(states.binary_sensor.motion_sensor_158d00024e842c.last_updated ~ '').replace('-','_')
|
||||||
|
.replace(' ', '_').replace(':','_').replace('.','_').replace('+','_') ~ '.jpg' }}"
|
||||||
|
caption: "Patio"
|
||||||
|
- file: "{{ '/home/homeassistant/.homeassistant/www/downloads/camera/playarea/playarea_' ~
|
||||||
|
(states.binary_sensor.motion_sensor_158d00024e842c.last_updated ~ '').replace('-','_')
|
||||||
|
.replace(' ', '_').replace(':','_').replace('.','_').replace('+','_') ~ '.jpg' }}"
|
||||||
|
caption: "Playarea"
|
||||||
|
|
||||||
- service: notify.notify_smtp
|
- service: notify.notify_smtp
|
||||||
data_template:
|
data_template:
|
||||||
title: 'Backyard motion {{ now().strftime("%d %h %Y, %I:%M:%S %p") }}'
|
title: 'Backyard motion {{ now().strftime("%d %h %Y, %I:%M:%S %p") }}'
|
||||||
|
@ -722,6 +860,7 @@ automation:
|
||||||
- "{{ '/home/homeassistant/.homeassistant/www/downloads/camera/playarea/playarea_' ~
|
- "{{ '/home/homeassistant/.homeassistant/www/downloads/camera/playarea/playarea_' ~
|
||||||
(states.binary_sensor.motion_sensor_158d00024e842c.last_updated ~ '').replace('-','_')
|
(states.binary_sensor.motion_sensor_158d00024e842c.last_updated ~ '').replace('-','_')
|
||||||
.replace(' ', '_').replace(':','_').replace('.','_').replace('+','_') ~ '.jpg' }}"
|
.replace(' ', '_').replace(':','_').replace('.','_').replace('+','_') ~ '.jpg' }}"
|
||||||
|
|
||||||
- condition: template
|
- condition: template
|
||||||
value_template: "{{ states('device_tracker.life360_suresh') == 'home' }}"
|
value_template: "{{ states('device_tracker.life360_suresh') == 'home' }}"
|
||||||
- service: notify.ios_devices
|
- service: notify.ios_devices
|
||||||
|
|
|
@ -144,8 +144,8 @@ automation:
|
||||||
trigger:
|
trigger:
|
||||||
platform: state
|
platform: state
|
||||||
entity_id:
|
entity_id:
|
||||||
- binary_sensor.door_window_sensor_158d0004231f7b
|
- binary_sensor.door_window_sensor_158d0004231f7b # 2 Car Garage
|
||||||
- binary_sensor.door_window_sensor_158d0004248d5b
|
- binary_sensor.door_window_sensor_158d0004248d5b # Single car garage
|
||||||
condition:
|
condition:
|
||||||
- condition: template
|
- condition: template
|
||||||
value_template: "{{ trigger.from_state.state != trigger.to_state.state }}"
|
value_template: "{{ trigger.from_state.state != trigger.to_state.state }}"
|
||||||
|
@ -178,38 +178,58 @@ automation:
|
||||||
entity_id: "camera.garage_camera"
|
entity_id: "camera.garage_camera"
|
||||||
filename:
|
filename:
|
||||||
"{{ '/home/homeassistant/.homeassistant/www/downloads/camera/garage/garage_' ~
|
"{{ '/home/homeassistant/.homeassistant/www/downloads/camera/garage/garage_' ~
|
||||||
(states.automation.notify_garage_door_status.last_triggered ~ '').replace('-','_')
|
((state_attr('automation.notify_garage_door_status', 'last_triggered') |string).replace('-','_')
|
||||||
.replace(' ', '_').replace(':','_').replace('.','_').replace('+','_') ~ '.jpg' }}"
|
.replace(' ', '_').replace(':','_').replace('.','_').replace('+','_') ~ '.jpg') }}"
|
||||||
- service: notify.notify_smtp
|
|
||||||
|
- service: script.notify_me_with_picture
|
||||||
data_template:
|
data_template:
|
||||||
title: 'Garage Door Status {{ now().strftime("%d %h %Y, %I:%M:%S %p") }}'
|
title: 'Garage Door Status {{ now().strftime("%d %h %Y, %I:%M:%S %p") }}'
|
||||||
message: >-
|
message: >-
|
||||||
{% set doors = "" %}
|
{%- set doors = "" -%}
|
||||||
{% if states('binary_sensor.door_window_sensor_158d0004231f7b') == "on" and
|
{%- if states('binary_sensor.door_window_sensor_158d0004231f7b') == "on" and
|
||||||
states('binary_sensor.door_window_sensor_158d0004248d5b') == "on" %}
|
states('binary_sensor.door_window_sensor_158d0004248d5b') == "on" -%}
|
||||||
{% set doors = "Both Garage Doors are OPEN" %}
|
{% set doors = "Both Garage Doors are OPEN" -%}
|
||||||
{% elif states('binary_sensor.door_window_sensor_158d0004231f7b') == "off" and
|
{%- elif states('binary_sensor.door_window_sensor_158d0004231f7b') == "off" and
|
||||||
states('binary_sensor.door_window_sensor_158d0004248d5b') == "off" %}
|
states('binary_sensor.door_window_sensor_158d0004248d5b') == "off" -%}
|
||||||
{% set doors = "Both Garage Doors are CLOSED" %}
|
{% set doors = "Both Garage Doors are CLOSED" -%}
|
||||||
{% else %}
|
{%- else -%}
|
||||||
{% set doors = states.binary_sensor.door_window_sensor_158d0004248d5b.name ~ " is " ~
|
{% set doors = states.binary_sensor.door_window_sensor_158d0004248d5b.name ~ " is " ~
|
||||||
('Closed' if states('binary_sensor.door_window_sensor_158d0004248d5b') == 'off' else 'OPEN')
|
('Closed' if states('binary_sensor.door_window_sensor_158d0004248d5b') == 'off' else 'OPEN')
|
||||||
~ " and " ~ state_attr('binary_sensor.door_window_sensor_158d0004231f7b', 'friendly_name') ~ " is " ~
|
~ " and " ~ state_attr('binary_sensor.door_window_sensor_158d0004231f7b', 'friendly_name') ~ " is " ~
|
||||||
('Closed' if states('binary_sensor.door_window_sensor_158d0004231f7b') == 'off' else 'OPEN') %}
|
('Closed' if states('binary_sensor.door_window_sensor_158d0004231f7b') == 'off' else 'OPEN') %}
|
||||||
{% endif %}
|
{%- endif %}
|
||||||
|
Your {{doors}} on {{ now().strftime("%d %h %Y, at %I:%M:%S %p") }}. Please check the garage snapshot below.
|
||||||
|
file: >
|
||||||
|
{{ '/home/homeassistant/.homeassistant/www/downloads/camera/garage/garage_' ~
|
||||||
|
((state_attr('automation.notify_garage_door_status', 'last_triggered') |string).replace('-','_')
|
||||||
|
.replace(' ', '_').replace(':','_').replace('.','_').replace('+','_') ~ '.jpg') }}
|
||||||
|
caption: "{{ trigger.to_state.attributes.friendly_name }}: {{ 'OPEN' if trigger.to_state.state == 'on' else 'CLOSED' }}"
|
||||||
|
|
||||||
|
- service: notify.notify_smtp
|
||||||
|
data_template:
|
||||||
|
title: 'Garage Door Status {{ now().strftime("%d %h %Y, %I:%M:%S %p") }}'
|
||||||
|
message: >-
|
||||||
|
{%- set doors = "" -%}
|
||||||
|
{%- if states('binary_sensor.door_window_sensor_158d0004231f7b') == "on" and
|
||||||
|
states('binary_sensor.door_window_sensor_158d0004248d5b') == "on" -%}
|
||||||
|
{%- set doors = "Both Garage Doors are OPEN" -%}
|
||||||
|
{%- elif states('binary_sensor.door_window_sensor_158d0004231f7b') == "off" and
|
||||||
|
states('binary_sensor.door_window_sensor_158d0004248d5b') == "off" -%}
|
||||||
|
{%- set doors = "Both Garage Doors are CLOSED" -%}
|
||||||
|
{%- else -%}
|
||||||
|
{%- set doors = states.binary_sensor.door_window_sensor_158d0004248d5b.name ~ " is " ~
|
||||||
|
('Closed' if states('binary_sensor.door_window_sensor_158d0004248d5b') == 'off' else 'OPEN')
|
||||||
|
~ " and " ~ state_attr('binary_sensor.door_window_sensor_158d0004231f7b', 'friendly_name') ~ " is " ~
|
||||||
|
('Closed' if states('binary_sensor.door_window_sensor_158d0004231f7b') == 'off' else 'OPEN') -%}
|
||||||
|
{%- endif -%}
|
||||||
Your {{doors}} on {{ now().strftime("%d %h %Y, at %I:%M:%S %p") }}. Please check the garage snapshot below.
|
Your {{doors}} on {{ now().strftime("%d %h %Y, at %I:%M:%S %p") }}. Please check the garage snapshot below.
|
||||||
data:
|
data:
|
||||||
images:
|
images:
|
||||||
- "{{ '/home/homeassistant/.homeassistant/www/downloads/camera/garage/garage_' ~
|
- "{{ '/home/homeassistant/.homeassistant/www/downloads/camera/garage/garage_' ~
|
||||||
(states.automation.notify_garage_door_status.last_triggered ~ '').replace('-','_')
|
((state_attr('automation.notify_garage_door_status', 'last_triggered') |string).replace('-','_')
|
||||||
.replace(' ', '_').replace(':','_').replace('.','_').replace('+','_') ~ '.jpg' }}"
|
.replace(' ', '_').replace(':','_').replace('.','_').replace('+','_') ~ '.jpg') }}"
|
||||||
- service_template: >
|
|
||||||
{% if trigger.to_state.state | lower == "on" %}
|
- service_template: "switch.turn_{{- trigger.to_state.state }}"
|
||||||
switch.turn_on
|
|
||||||
{% else %}
|
|
||||||
switch.turn_off
|
|
||||||
{% endif%}
|
|
||||||
data:
|
|
||||||
entity_id: switch.garage
|
entity_id: switch.garage
|
||||||
|
|
||||||
# Notify Entry Door Status
|
# Notify Entry Door Status
|
||||||
|
|
|
@ -1,288 +0,0 @@
|
||||||
# ###############################################################################
|
|
||||||
# # @author : Mahasri Kalavala
|
|
||||||
# # @date : 11/22/2017
|
|
||||||
# # @package : Emergency Stuff
|
|
||||||
# # @description : When $hit hapens, this package gets called!
|
|
||||||
# #
|
|
||||||
# # In case of emergency - turn on the emergency_mode (input boolean)
|
|
||||||
# # lights, crazy sounds and alarms repeatedly until someone turns off
|
|
||||||
# # input boolean and/or Home Security System is turned OFF.
|
|
||||||
# #
|
|
||||||
# # All automations that alert during emerency situations, will turn on
|
|
||||||
# # input boolean emergency_mode and notify using standard notification
|
|
||||||
# #
|
|
||||||
# # My Home TTS/voice notifications will not work when music is being played
|
|
||||||
# # The automations will stop MPD media player ( just to makesure), so that
|
|
||||||
# # the TTS notifications will be played in case if someone plays music and
|
|
||||||
# # forgot to turn if off.
|
|
||||||
# ###############################################################################
|
|
||||||
|
|
||||||
# homeassistant:
|
|
||||||
# customize:
|
|
||||||
# script.emergency_script:
|
|
||||||
# friendly_name: Emergency Script
|
|
||||||
# hidden: true
|
|
||||||
# script.emergency_script_loop:
|
|
||||||
# friendly_name: Emergency Script Loop
|
|
||||||
# hidden: true
|
|
||||||
# script.emergency_all_lights_switches_on:
|
|
||||||
# friendly_name: All Lights & Switches ON
|
|
||||||
# script.all_indoor_lights_off:
|
|
||||||
# friendly_name: All Indoor Lights OFF
|
|
||||||
|
|
||||||
# input_boolean:
|
|
||||||
# emergency_mode:
|
|
||||||
# name: Emergency Mode
|
|
||||||
# initial: 'off'
|
|
||||||
|
|
||||||
# ###############################################################################
|
|
||||||
# # _ _ _
|
|
||||||
# # /\ | | | | (_)
|
|
||||||
# # / \ _ _| |_ ___ _ __ ___ __ _| |_ _ ___ _ __ ___
|
|
||||||
# # / /\ \| | | | __/ _ \| '_ ` _ \ / _` | __| |/ _ \| '_ \/ __|
|
|
||||||
# # / ____ \ |_| | || (_) | | | | | | (_| | |_| | (_) | | | \__ \
|
|
||||||
# # /_/ \_\__,_|\__\___/|_| |_| |_|\__,_|\__|_|\___/|_| |_|___/
|
|
||||||
# #
|
|
||||||
# ###############################################################################
|
|
||||||
|
|
||||||
# automation:
|
|
||||||
|
|
||||||
# ###############################################################################
|
|
||||||
# # When emergency mode is OFF, Keep the lights ON
|
|
||||||
# ###############################################################################
|
|
||||||
# - alias: Emergency Mode Disabled
|
|
||||||
# initial_state: true
|
|
||||||
# trigger:
|
|
||||||
# platform: state
|
|
||||||
# entity_id: input_boolean.emergency_mode
|
|
||||||
# from: 'on'
|
|
||||||
# to: 'off'
|
|
||||||
# action:
|
|
||||||
# - delay: '00:00:05'
|
|
||||||
# - service: script.voice_notify
|
|
||||||
# data_template:
|
|
||||||
# message: "Attention! Emergency mode is now deactivated!"
|
|
||||||
# - service: script.notify_me
|
|
||||||
# data_template:
|
|
||||||
# message: "Emergency mode is now deactivated!"
|
|
||||||
|
|
||||||
# # # Carbon Monoxide Detected in the house
|
|
||||||
# # ###############################################################################
|
|
||||||
# # - alias: CO Detected
|
|
||||||
# # initial_state: true
|
|
||||||
# # trigger:
|
|
||||||
# # - platform: state
|
|
||||||
# # entity_id: sensor.audio_detector_carbon_monoxide
|
|
||||||
# # from: '0'
|
|
||||||
# # condition:
|
|
||||||
# # - condition: template
|
|
||||||
# # value_template: "{{ trigger.to_state.state != '0' }}"
|
|
||||||
# # action:
|
|
||||||
# # - service: script.voice_notify
|
|
||||||
# # data_template:
|
|
||||||
# # message: "Attention!: CARBON MONOXIDE DETECTED! GET THE HELL OUT OF THE HOUSE!"
|
|
||||||
# # - service: script.notify_me
|
|
||||||
# # data_template:
|
|
||||||
# # message: "Attention!: CARBON MONOXIDE DETECTED!. GET THE HELL OUT OF THE HOUSE!"
|
|
||||||
# # - service: input_boolean.turn_on
|
|
||||||
# # entity_id: input_boolean.emergency_mode
|
|
||||||
# # - service: media_player.media_stop
|
|
||||||
# # entity_id: media_player.mpd
|
|
||||||
# # - service: script.emergency_script
|
|
||||||
# # data:
|
|
||||||
# # volume_level: 99
|
|
||||||
# # alarm_code: 2
|
|
||||||
# # message: "Attention! Cabon Monoxide detected. Leave the house immediately!"
|
|
||||||
|
|
||||||
# # # Smoke Detected in the house
|
|
||||||
# # ###############################################################################
|
|
||||||
# # - alias: Smoke Detected
|
|
||||||
# # initial_state: true
|
|
||||||
# # trigger:
|
|
||||||
# # - platform: state
|
|
||||||
# # entity_id: sensor.audio_detector_smoke
|
|
||||||
# # from: '0'
|
|
||||||
# # condition:
|
|
||||||
# # - condition: template
|
|
||||||
# # value_template: "{{ trigger.to_state.state != '0' }}"
|
|
||||||
# # action:
|
|
||||||
# # - service: script.voice_notify
|
|
||||||
# # data_template:
|
|
||||||
# # message: "Attention!: SMOKE DETECTED! CALL 911!"
|
|
||||||
# # - service: script.notify_me
|
|
||||||
# # data_template:
|
|
||||||
# # message: "Attention!: SMOKE DETECTED!. CALL 911!"
|
|
||||||
# # - service: input_boolean.turn_on
|
|
||||||
# # entity_id: input_boolean.emergency_mode
|
|
||||||
# # - service: media_player.media_stop
|
|
||||||
# # entity_id: media_player.mpd
|
|
||||||
# # - service: script.emergency_script
|
|
||||||
# # data:
|
|
||||||
# # volume_level: 99
|
|
||||||
# # alarm_code: 2
|
|
||||||
# # message: "Smoke Detected. Please get out of the home and call 911 immediately!"
|
|
||||||
|
|
||||||
# # Disable Emergency Mode upon Disabling Home Security System
|
|
||||||
# ###############################################################################
|
|
||||||
# - alias: Disable Emergency Mode Upon Disabling Home Security
|
|
||||||
# initial_state: true
|
|
||||||
# trigger:
|
|
||||||
# platform: state
|
|
||||||
# entity_id: alarm_control_panel.home
|
|
||||||
# to: 'disarmed'
|
|
||||||
# condition:
|
|
||||||
# - condition: template
|
|
||||||
# value_template: "{{ states('input_boolean.emergency_mode') == 'on' }}"
|
|
||||||
# action:
|
|
||||||
# - service: input_boolean.turn_off
|
|
||||||
# entity_id: input_boolean.emergency_mode
|
|
||||||
|
|
||||||
# - alias: Home Security Away Motion Deteted Inside
|
|
||||||
# initial_state: true
|
|
||||||
# trigger:
|
|
||||||
# platform: state
|
|
||||||
# entity_id:
|
|
||||||
# - binary_sensor.back_door_sensor_sensor
|
|
||||||
# - binary_sensor.aeotec_zw120_door_window_sensor_gen5_sensor
|
|
||||||
# - binary_sensor.basement_door_sensor_sensor
|
|
||||||
# - binary_sensor.garage_door_sensor_sensor
|
|
||||||
# - binary_sensor.front_room_multi_sensor_sensor
|
|
||||||
# - binary_sensor.tv_multi_sensor_sensor
|
|
||||||
# - binary_sensor.kitchen_motion_sensor_sensor
|
|
||||||
# - binary_sensor.stairs_motion_sensor_sensor
|
|
||||||
# - binary_sensor.upstairs_multi_sensor_sensor
|
|
||||||
# - binary_sensor.door_window_sensor_158d0004231f7b
|
|
||||||
# - binary_sensor.door_window_sensor_158d0004248d5b
|
|
||||||
# - binary_sensor.motion_sensor_158d0001a662fe
|
|
||||||
# - binary_sensor.motion_sensor_158d0001a25041
|
|
||||||
# - binary_sensor.motion_sensor_158d00016db6d2
|
|
||||||
# - binary_sensor.motion_sensor_158d00016c2d0e
|
|
||||||
# from: 'off'
|
|
||||||
# to: 'on'
|
|
||||||
# condition:
|
|
||||||
# - condition: template
|
|
||||||
# value_template: "{{ trigger.from_state }}"
|
|
||||||
# - condition: template
|
|
||||||
# value_template: >
|
|
||||||
# {% set state = states.alarm_control_panel.home.state %}
|
|
||||||
# {% if state != "" and state != "unknown" and state == "armed_away" %}
|
|
||||||
# true
|
|
||||||
# {% else %}
|
|
||||||
# false
|
|
||||||
# {% endif %}
|
|
||||||
# - condition: template
|
|
||||||
# value_template: >
|
|
||||||
# {% set suresh = states.device_tracker.suresh_suresh.state %}
|
|
||||||
# {% set mallika = states.device_tracker.mallika_mallika.state %}
|
|
||||||
# {% set srinika = states.device_tracker.srinika_srinika.state %}
|
|
||||||
# {% set hasika = states.device_tracker.hasika_hasika.state %}
|
|
||||||
# {% if suresh != "home" and mallika != "home" and srinika != "home" and hasika != "home" %}
|
|
||||||
# True
|
|
||||||
# {% else %}
|
|
||||||
# False
|
|
||||||
# {% endif %}
|
|
||||||
# action:
|
|
||||||
# - service: input_boolean.turn_on
|
|
||||||
# entity_id: input_boolean.emergency_mode
|
|
||||||
# - service: script.emergency_all_lights_switches_on
|
|
||||||
# - service: script.notify_me
|
|
||||||
# data_template:
|
|
||||||
# message: "MOTION DETECTED '{{ trigger.to_state.attributes.friendly_name | upper }}',
|
|
||||||
# BUT NO ONE IS HOME. CALL FOR EMERGENCY!"
|
|
||||||
# - service: notify.ios_devices
|
|
||||||
# data_template:
|
|
||||||
# title: >
|
|
||||||
# {{ trigger.to_state.attributes.friendly_name }}
|
|
||||||
# message: >
|
|
||||||
# Attention: "MOTION DETECTED '{{ trigger.to_state.attributes.friendly_name | upper }}',
|
|
||||||
# BUT NO ONE IS HOME. CALL FOR EMERGENCY!"
|
|
||||||
# - service: script.emergency_script
|
|
||||||
# data:
|
|
||||||
# volume_level: 99
|
|
||||||
# alarm_code: 1
|
|
||||||
# message: "Police are on the way!...Police are on the way!...Police are on the way!...Police are on the way!...Police are on the way!"
|
|
||||||
|
|
||||||
# script:
|
|
||||||
|
|
||||||
# # Main Emergency Script
|
|
||||||
# ###############################################################################
|
|
||||||
# emergency_script:
|
|
||||||
# sequence:
|
|
||||||
# - condition: template
|
|
||||||
# value_template: '{{ states.input_boolean.emergency_mode.state | lower == "on" }}'
|
|
||||||
# - service: script.voice_notify
|
|
||||||
# data_template:
|
|
||||||
# message: '{{ message }}'
|
|
||||||
# greeting: 'no'
|
|
||||||
# - service: xiaomi_aqara.play_ringtone
|
|
||||||
# data_template:
|
|
||||||
# ringtone_id: '{{ alarm_code }}'
|
|
||||||
# ringtone_vol: '{{ volume_level }}'
|
|
||||||
# - delay: '00:00:01'
|
|
||||||
# - service: script.emergency_script_loop
|
|
||||||
# data_template:
|
|
||||||
# message: '{{ message }}'
|
|
||||||
# alarm_code: '{{ alarm_code }}'
|
|
||||||
# volume_level: '{{ volume_level }}'
|
|
||||||
|
|
||||||
# # This script checks for the emergency_mode input_boolean and continue to
|
|
||||||
# # stay in emergency mode based on the input_boolean value
|
|
||||||
# ###############################################################################
|
|
||||||
# emergency_script_loop:
|
|
||||||
# sequence:
|
|
||||||
# - condition: template
|
|
||||||
# value_template: '{{ states.input_boolean.emergency_mode.state == "on" }}'
|
|
||||||
# - delay: '00:00:02'
|
|
||||||
# - service: script.emergency_script
|
|
||||||
# data_template:
|
|
||||||
# message: '{{ message }}'
|
|
||||||
# alarm_code: '{{ alarm_code }}'
|
|
||||||
# volume_level: '{{ volume_level }}'
|
|
||||||
|
|
||||||
# # Turns ALL lights & Switches ON (Lights in RED where possible)
|
|
||||||
# ###############################################################################
|
|
||||||
# emergency_all_lights_switches_on:
|
|
||||||
# sequence:
|
|
||||||
# - service: script.xiaomi_red
|
|
||||||
# - service: script.ifttt_leeo_color_change
|
|
||||||
# data_template:
|
|
||||||
# value1: "#FF0000"
|
|
||||||
# - service: light.turn_on
|
|
||||||
# entity_id: light.family_room
|
|
||||||
# data:
|
|
||||||
# transition: 0
|
|
||||||
# brightness: 255
|
|
||||||
# rgb_color: [255,0,0]
|
|
||||||
# - service: light.turn_on
|
|
||||||
# entity_id: light.master_bedroom
|
|
||||||
# data:
|
|
||||||
# transition: 0
|
|
||||||
# brightness: 255
|
|
||||||
# rgb_color: [255,0,0]
|
|
||||||
# - service: switch.turn_on
|
|
||||||
# entity_id:
|
|
||||||
# - switch.basement_left
|
|
||||||
# - switch.basement_right
|
|
||||||
# - switch.garage
|
|
||||||
# - switch.guest_bedroom
|
|
||||||
# - switch.prayer_room
|
|
||||||
# - switch.kids_bed_accent
|
|
||||||
# - switch.kids_bedroom
|
|
||||||
# - switch.office_room
|
|
||||||
# - switch.smart_outlet_1
|
|
||||||
# - switch.kitchen
|
|
||||||
# - switch.rf_switch_five
|
|
||||||
# - switch.rf_switch_four
|
|
||||||
# - switch.rf_switch_one
|
|
||||||
# - switch.rf_switch_three
|
|
||||||
# - switch.rf_switch_two
|
|
||||||
# - switch.wemobackyardlightswitch
|
|
||||||
# - switch.frontyard_light
|
|
||||||
# - switch.downstairs_fragrance
|
|
||||||
# - switch.upstairs_fragrance
|
|
||||||
# - switch.kitchen_siren_switch
|
|
||||||
# - switch.kitchen_siren_switch_2
|
|
||||||
# - switch.kitchen_siren_switch_3
|
|
||||||
# - switch.kitchen_siren_switch_4
|
|
||||||
# - switch.kitchen_siren_switch_5
|
|
||||||
# - switch.wemoswitch1
|
|
|
@ -59,18 +59,6 @@ automation:
|
||||||
{% elif states('alarm_control_panel.home') == "disarmed" %}
|
{% elif states('alarm_control_panel.home') == "disarmed" %}
|
||||||
script.xiaomi_red
|
script.xiaomi_red
|
||||||
{% endif %}
|
{% endif %}
|
||||||
- service: script.ifttt_leeo_color_change
|
|
||||||
data_template:
|
|
||||||
value1: >
|
|
||||||
{% if states('alarm_control_panel.home') == "armed_home" %}
|
|
||||||
"#0000FF"
|
|
||||||
{% elif states('alarm_control_panel.home') == "armed_away" %}
|
|
||||||
"#00FF00"
|
|
||||||
{% elif states('alarm_control_panel.home') == "triggered" %}
|
|
||||||
"#FF0000"
|
|
||||||
{% elif states('alarm_control_panel.home') == "disarmed" %}
|
|
||||||
"#FF0000"
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
# Notify Security System State Change
|
# Notify Security System State Change
|
||||||
|
@ -181,115 +169,95 @@ automation:
|
||||||
entity_id: climate.dining_room
|
entity_id: climate.dining_room
|
||||||
away_mode: "false"
|
away_mode: "false"
|
||||||
|
|
||||||
###############################################################################
|
# ###############################################################################
|
||||||
# TURN HOME SECURITY SYSTEM ON AT BED TIME
|
# # TURN HOME SECURITY SYSTEM ON AT BED TIME
|
||||||
###############################################################################
|
# ###############################################################################
|
||||||
- alias: Night HomeSecurity On
|
# - alias: Night HomeSecurity On
|
||||||
initial_state: true
|
# initial_state: true
|
||||||
trigger:
|
# trigger:
|
||||||
platform: time_pattern
|
# platform: time_pattern
|
||||||
minutes: "/5"
|
# minutes: "/5"
|
||||||
seconds: 00
|
# seconds: 00
|
||||||
condition:
|
# condition:
|
||||||
- condition: template
|
# - condition: template
|
||||||
value_template: "{{ states('sensor.bedtime_hour')|int == now().hour|int }}"
|
# value_template: "{{ states('sensor.bedtime_hour')|int == now().hour|int }}"
|
||||||
- condition: template
|
# - condition: template
|
||||||
value_template: "{{ states('sensor.bedtime_minute')|int == now().minute|int }}"
|
# value_template: "{{ states('sensor.bedtime_minute')|int == now().minute|int }}"
|
||||||
- condition: template
|
# - condition: template
|
||||||
value_template: "{{ states('alarm_control_panel.home') != 'away' }}"
|
# value_template: "{{ states('alarm_control_panel.home') != 'away' }}"
|
||||||
- condition: template
|
# - condition: template
|
||||||
value_template: "{{ states('alarm_control_panel.home') == 'disarmed' }}"
|
# value_template: "{{ states('alarm_control_panel.home') == 'disarmed' }}"
|
||||||
- condition: template
|
# - condition: template
|
||||||
value_template: "{{ states('input_boolean.security_system_alerts') == 'on' }}"
|
# value_template: "{{ states('input_boolean.security_system_alerts') == 'on' }}"
|
||||||
action:
|
# action:
|
||||||
- service: alarm_control_panel.alarm_arm_home
|
# - service: alarm_control_panel.alarm_arm_home
|
||||||
data:
|
# data:
|
||||||
entity_id: alarm_control_panel.home
|
# entity_id: alarm_control_panel.home
|
||||||
- service: script.notify_me
|
# - service: script.notify_me
|
||||||
data:
|
# data:
|
||||||
message: "It's bedtime, you forgot to turn ON Home Security System. Turned it ON for you."
|
# message: "It's bedtime, you forgot to turn ON Home Security System. Turned it ON for you."
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
# Check for Garage Door Status when Home Security System State changes
|
# Check for Garage Door Status when Home Security System State changes
|
||||||
###############################################################################
|
###############################################################################
|
||||||
# - alias: Home Security System And Garage Door Check
|
- alias: Home Security System And Garage Door Check
|
||||||
# initial_state: true
|
initial_state: true
|
||||||
# trigger:
|
trigger:
|
||||||
# - platform: time_pattern
|
- platform: time_pattern
|
||||||
# minutes: '/15'
|
minutes: '/15'
|
||||||
# seconds: 00
|
seconds: 00
|
||||||
# condition:
|
condition:
|
||||||
# condition: and
|
condition: and
|
||||||
# conditions:
|
conditions:
|
||||||
# - condition: template
|
- condition: template
|
||||||
# value_template: '{{ states('alarm_control_panel.home') == "armed_home" or states('alarm_control_panel.home') == "armed_away" }}'
|
value_template: "{{ states('alarm_control_panel.home') == 'armed_home' or states('alarm_control_panel.home') == 'armed_away' }}"
|
||||||
# - condition: or
|
- condition: or
|
||||||
# conditions:
|
conditions:
|
||||||
# - condition: template
|
- condition: template
|
||||||
# value_template: '{{ states('binary_sensor.door_window_sensor_158d0004231f7b') == "on" }}'
|
value_template: "{{ states('binary_sensor.door_window_sensor_158d0004231f7b') == 'on' }}"
|
||||||
# - condition: template
|
- condition: template
|
||||||
# value_template: '{{ states('binary_sensor.door_window_sensor_158d0004248d5b') == "on" }}'
|
value_template: "{{ states('binary_sensor.door_window_sensor_158d0004248d5b') == 'on' }}"
|
||||||
# action:
|
action:
|
||||||
# - service: switch.turn_on
|
- service: switch.turn_on
|
||||||
# entity_id: switch.garage
|
entity_id: switch.garage
|
||||||
# - service: script.notify_me
|
|
||||||
# data_template:
|
- service: script.notify_me
|
||||||
# message: >
|
data_template:
|
||||||
# Attention! Your home Security system is set to {{ states('alarm_control_panel.home').split('_')[1] | upper }} mode.
|
message: >
|
||||||
# BUT THE {% if states('binary_sensor.door_window_sensor_158d0004231f7b') == "on" -%}DOUBLE CAR {%- else %}SINGLE CAR {% endif %}GARAGE DOOR IS STILL OPEN!
|
Attention! Your home Security system is set to {{ states('alarm_control_panel.home').split('_')[1] | upper }} mode. BUT THE {% if states('binary_sensor.door_window_sensor_158d0004231f7b') == "on" -%}DOUBLE CAR {%- else %}SINGLE CAR {% endif %}GARAGE DOOR IS STILL OPEN!
|
||||||
# - service: camera.snapshot
|
|
||||||
# data_template:
|
- service: camera.snapshot
|
||||||
# entity_id: "camera.garage_camera"
|
data_template:
|
||||||
# filename: "{{ '/home/homeassistant/.homeassistant/www/downloads/camera/garage/garage_' ~ (states('automation.home_security_system_and_garage_door_check.last_updated ~ '').replace('-','_').replace(' ', '_').replace(':','_').replace('.','_').replace('+','_') ~ '.jpg' }}"
|
entity_id: "camera.garage_camera"
|
||||||
# - service: camera.snapshot
|
filename: "{{ '/home/homeassistant/.homeassistant/www/downloads/camera/garage/garage_' ~ (state_attr('automation.home_security_system_and_garage_door_check','last_updated') ~ '').replace('-','_').replace(' ', '_').replace(':','_').replace('.','_').replace('+','_') ~ '.jpg' }}"
|
||||||
# data_template:
|
|
||||||
# entity_id: "camera.driveway_camera"
|
- service: notify.telegram
|
||||||
# filename: "{{ '/home/homeassistant/.homeassistant/www/downloads/camera/driveway/driveway_' ~ (states('automation.home_security_system_and_garage_door_check.last_updated ~ '').replace('-','_').replace(' ', '_').replace(':','_').replace('.','_').replace('+','_') ~ '.jpg' }}"
|
data_template:
|
||||||
# - service: camera.snapshot
|
title: "Garage"
|
||||||
# data_template:
|
message: "Home Security System is ON, but Garage Doors are OPEN!"
|
||||||
# entity_id: "camera.frontdoor_camera"
|
data:
|
||||||
# filename: "{{ '/home/homeassistant/.homeassistant/www/downloads/camera/frontdoor/frontdoor_' ~ (states('automation.home_security_system_and_garage_door_check.last_updated ~ '').replace('-','_').replace(' ', '_').replace(':','_').replace('.','_').replace('+','_') ~ '.jpg' }}"
|
photo:
|
||||||
# - service: notify.notify_smtp
|
- file: "{{ '/home/homeassistant/.homeassistant/www/downloads/camera/garage/garage_' ~
|
||||||
# data_template:
|
(states.binary_sensor.motion_sensor_158d00024ee084.last_updated ~ '').replace('-','_')
|
||||||
# title: 'Garage Picture {{ now().strftime("%d %h %Y, %I:%M:%S %p") }}'
|
.replace(' ', '_').replace(':','_').replace('.','_').replace('+','_') ~ '.jpg' }}"
|
||||||
# message: >-
|
caption: "Garage"
|
||||||
# {%- macro get_date(dt) %}
|
|
||||||
# {%- set date_suffix = ["th", "st", "nd", "rd"] -%}
|
- condition: template
|
||||||
# {{ dt.day }}
|
value_template: "{{ states('alarm_control_panel.home') == 'armed_home' }}"
|
||||||
# {%- if dt.day % 10 in [1, 2, 3] and dt.day not in [11, 12, 13] -%}
|
|
||||||
# {{ date_suffix[dt.day%10] }}
|
- service: script.voice_notify
|
||||||
# {%- else -%}
|
data_template:
|
||||||
# {{ date_suffix[0] }}
|
message: >
|
||||||
# {%- endif %} {{ dt.strftime("%B %Y")}}
|
{%- set doors = "" %}
|
||||||
# {%- endmacro -%}
|
{%- if states('binary_sensor.door_window_sensor_158d0004231f7b') == "on" and states('binary_sensor.door_window_sensor_158d0004248d5b') == "on" %}
|
||||||
# {% set doors = "" %}
|
{%- set doors = "Both garage doors" %}
|
||||||
# {% if states('binary_sensor.door_window_sensor_158d0004231f7b') == "on" and states('binary_sensor.door_window_sensor_158d0004248d5b') == "on" %}
|
{%- elif states('binary_sensor.door_window_sensor_158d0004248d5b') == "on"%}
|
||||||
# {% set doors = "Both garage doors" %}
|
{%- set doors = state_attr('binary_sensor.door_window_sensor_158d0004248d5b', 'friendly_name') %}
|
||||||
# {% elif states('binary_sensor.door_window_sensor_158d0004248d5b') == "on"%}
|
{%- elif states('binary_sensor.door_window_sensor_158d0004248d5b') == "on" %}
|
||||||
# {% set doors = states('binary_sensor.door_window_sensor_158d0004248d5b.name %}
|
{%- set doors = state_attr('binary_sensor.door_window_sensor_158d0004231f7b', 'friendly_name') %}
|
||||||
# {% elif states('binary_sensor.door_window_sensor_158d0004231f7b') == "on" %}
|
{%- endif %}
|
||||||
# {% set doors = states('binary_sensor.door_window_sensor_158d0004231f7b.name %}
|
Attention! Your home Security system is set to {{ states('alarm_control_panel.home').split('_')[1] | upper }} mode.
|
||||||
# {% endif %}
|
BUT the {{ doors }} {{ 'are' if doors.endswith('s') else 'is' }} open.
|
||||||
# Your {{ doors }} seem to be open while your home security system is set to "{{ states('alarm_control_panel.home').split('_')[1]| title }}" mode. Today is {{ get_date(now()) }}, and time is {{ now().strftime("%I:%M:%S %p") }}. Please see the attached pictures and make sure everything is okay.
|
|
||||||
# data:
|
|
||||||
# images:
|
|
||||||
# - "{{ '/home/homeassistant/.homeassistant/www/downloads/camera/garage/garage_' ~ (states('automation.home_security_system_and_garage_door_check.last_updated ~ '').replace('-','_').replace(' ', '_').replace(':','_').replace('.','_').replace('+','_') ~ '.jpg' }}"
|
|
||||||
# - "{{ '/home/homeassistant/.homeassistant/www/downloads/camera/driveway/driveway_' ~ (states('automation.home_security_system_and_garage_door_check.last_updated ~ '').replace('-','_').replace(' ', '_').replace(':','_').replace('.','_').replace('+','_') ~ '.jpg' }}"
|
|
||||||
# - "{{ '/home/homeassistant/.homeassistant/www/downloads/camera/frontdoor/frontdoor_' ~ (states('automation.home_security_system_and_garage_door_check.last_updated ~ '').replace('-','_').replace(' ', '_').replace(':','_').replace('.','_').replace('+','_') ~ '.jpg' }}"
|
|
||||||
# - condition: template
|
|
||||||
# value_template: '{{ states('alarm_control_panel.home') == "armed_home" }}'
|
|
||||||
# - service: script.voice_notify
|
|
||||||
# data_template:
|
|
||||||
# message: >
|
|
||||||
# {% set doors = "" %}
|
|
||||||
# {% if states('binary_sensor.door_window_sensor_158d0004231f7b') == "on" and states('binary_sensor.door_window_sensor_158d0004248d5b') == "on" %}
|
|
||||||
# {% set doors = "Both garage doors" %}
|
|
||||||
# {% elif states('binary_sensor.door_window_sensor_158d0004248d5b') == "on"%}
|
|
||||||
# {% set doors = states('binary_sensor.door_window_sensor_158d0004248d5b.name %}
|
|
||||||
# {% elif states('binary_sensor.door_window_sensor_158d0004248d5b') == "on" %}
|
|
||||||
# {% set doors = states('binary_sensor.door_window_sensor_158d0004231f7b.name %}
|
|
||||||
# {% endif %}
|
|
||||||
# Attention! Your home Security system is set to {{ states('alarm_control_panel.home').split('_')[1] | upper }} mode.
|
|
||||||
# BUT the {{ doors }} {{ 'are' if doors.endswith('s') else 'is' }} open.
|
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
# Turn Home Security System ON at sunset time
|
# Turn Home Security System ON at sunset time
|
||||||
|
@ -388,74 +356,3 @@ automation:
|
||||||
# {%- endif -%}
|
# {%- endif -%}
|
||||||
# Your {{ doors}} {%- if 'and' in doors -%}s are {%- else %} is {%- endif %} open. Home Security System could not be turned on.
|
# Your {{ doors}} {%- if 'and' in doors -%}s are {%- else %} is {%- endif %} open. Home Security System could not be turned on.
|
||||||
# {% endif %}
|
# {% endif %}
|
||||||
|
|
||||||
##############################################################################
|
|
||||||
# Ask me if I want to turn off Home Security System upon reaching front door
|
|
||||||
# Ask me only when the security system is ON or AWAY mode
|
|
||||||
##############################################################################
|
|
||||||
# - alias: Turn Off Security Upon Reaching Home
|
|
||||||
# initial_state: true
|
|
||||||
# trigger:
|
|
||||||
# - platform: state
|
|
||||||
# entity_id: device_tracker.life360_suresh
|
|
||||||
# from: 'not_home'
|
|
||||||
# to: 'home'
|
|
||||||
# condition:
|
|
||||||
# condition: or
|
|
||||||
# conditions:
|
|
||||||
# - condition: template
|
|
||||||
# value_template: '{{ states('alarm_control_panel.home') | lower == "armed_away" }}'
|
|
||||||
# - condition: template
|
|
||||||
# value_template: '{{ states('alarm_control_panel.home') | lower == "armed_home" }}'
|
|
||||||
# action:
|
|
||||||
# - service: notify.ios_suresh
|
|
||||||
# data_template:
|
|
||||||
# title: 'Welcome Home, Suresh!'
|
|
||||||
# message: 'Turn Off Home Security System?'
|
|
||||||
# data:
|
|
||||||
# push:
|
|
||||||
# badge: 0
|
|
||||||
# category: 'welcome_home'
|
|
||||||
|
|
||||||
##############################################################################
|
|
||||||
# Ask me if I want to turn off Home Security System when garage door is opened
|
|
||||||
# Ask me only when the security system is ON or AWAY mode
|
|
||||||
##############################################################################
|
|
||||||
# - alias: Notify Garage Status And Home Security System
|
|
||||||
# initial_state: true
|
|
||||||
# trigger:
|
|
||||||
# platform: state
|
|
||||||
# entity_id:
|
|
||||||
# - binary_sensor.door_window_sensor_158d0004231f7b
|
|
||||||
# - binary_sensor.door_window_sensor_158d0004248d5b
|
|
||||||
# to: 'on'
|
|
||||||
# condition:
|
|
||||||
# - condition: template
|
|
||||||
# value_template: '{{ states('alarm_control_panel.home') == "armed_home" or states('alarm_control_panel.home') == "armed_away" }}'
|
|
||||||
# action:
|
|
||||||
# - service: notify.ios_suresh
|
|
||||||
# data_template:
|
|
||||||
# title: >
|
|
||||||
# Your Home is armed, and {{ trigger.entity_id.split('.')[1].split('_')[0] |title }} Car Garage is just opened!
|
|
||||||
# message: 'Turn Off Home Security System?'
|
|
||||||
# data:
|
|
||||||
# push:
|
|
||||||
# badge: 0
|
|
||||||
# category: 'welcome_home'
|
|
||||||
|
|
||||||
##############################################################################
|
|
||||||
# iOS Actionable Notification that disables Home Security System
|
|
||||||
##############################################################################
|
|
||||||
# - alias: Disable Home Security iOS Action
|
|
||||||
# initial_state: true
|
|
||||||
# trigger:
|
|
||||||
# platform: event
|
|
||||||
# event_type: ios.notification_action_fired
|
|
||||||
# event_data:
|
|
||||||
# actionName: 'DISABLE_SECURITY'
|
|
||||||
# action:
|
|
||||||
# - service: alarm_control_panel.alarm_disarm
|
|
||||||
# entity_id: alarm_control_panel.home
|
|
||||||
# - service: notify.ios_suresh
|
|
||||||
# data:
|
|
||||||
# message: "Unlocked your home!"
|
|
||||||
|
|
|
@ -88,9 +88,9 @@ homeassistant:
|
||||||
input_boolean.animate_upstairs_lights:
|
input_boolean.animate_upstairs_lights:
|
||||||
icon: mdi:flash-outline
|
icon: mdi:flash-outline
|
||||||
friendly_name: Animate Master Bedroom Lights
|
friendly_name: Animate Master Bedroom Lights
|
||||||
hue:
|
# hue:
|
||||||
bridges:
|
# bridges:
|
||||||
- host: !secret philips_hue_ipaddress
|
# - host: !secret philips_hue_ipaddress
|
||||||
|
|
||||||
tplink:
|
tplink:
|
||||||
discovery: false
|
discovery: false
|
||||||
|
|
|
@ -6,7 +6,6 @@
|
||||||
###############################################################################
|
###############################################################################
|
||||||
homeassistant:
|
homeassistant:
|
||||||
customize:
|
customize:
|
||||||
|
|
||||||
sensor.trash_day:
|
sensor.trash_day:
|
||||||
friendly_name: Is it Trash Day today?
|
friendly_name: Is it Trash Day today?
|
||||||
icon: mdi:delete-variant
|
icon: mdi:delete-variant
|
||||||
|
@ -197,7 +196,6 @@ sensor:
|
||||||
#
|
#
|
||||||
###############################################################################
|
###############################################################################
|
||||||
automation:
|
automation:
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
# The schedule can be changed via UI. The updated schedules are saved in MQTT
|
# The schedule can be changed via UI. The updated schedules are saved in MQTT
|
||||||
# The input_selects don't maintain state automatically - hence this code
|
# The input_selects don't maintain state automatically - hence this code
|
||||||
|
@ -214,7 +212,7 @@ automation:
|
||||||
data_template:
|
data_template:
|
||||||
topic: "/home/trashpickupday"
|
topic: "/home/trashpickupday"
|
||||||
retain: true
|
retain: true
|
||||||
payload: '{{ states.input_select.trash_pickup_day.state }}'
|
payload: "{{ states.input_select.trash_pickup_day.state }}"
|
||||||
|
|
||||||
- alias: Recycle Pickup Day Changed
|
- alias: Recycle Pickup Day Changed
|
||||||
initial_state: true
|
initial_state: true
|
||||||
|
@ -226,7 +224,7 @@ automation:
|
||||||
data_template:
|
data_template:
|
||||||
topic: "/home/recyclepickupday"
|
topic: "/home/recyclepickupday"
|
||||||
retain: true
|
retain: true
|
||||||
payload: '{{ states.input_select.recycle_pickup_day.state }}'
|
payload: "{{ states.input_select.recycle_pickup_day.state }}"
|
||||||
|
|
||||||
- alias: Recycle Pickup Week Changed
|
- alias: Recycle Pickup Week Changed
|
||||||
initial_state: true
|
initial_state: true
|
||||||
|
@ -238,7 +236,7 @@ automation:
|
||||||
data_template:
|
data_template:
|
||||||
topic: "/home/recyclepickupweek"
|
topic: "/home/recyclepickupweek"
|
||||||
retain: true
|
retain: true
|
||||||
payload: '{{ states.input_select.recycle_pickup_week.state }}'
|
payload: "{{ states.input_select.recycle_pickup_week.state }}"
|
||||||
|
|
||||||
- alias: Restore Trash Recycle Settings on Startup
|
- alias: Restore Trash Recycle Settings on Startup
|
||||||
initial_state: true
|
initial_state: true
|
||||||
|
@ -269,17 +267,17 @@ automation:
|
||||||
initial_state: true
|
initial_state: true
|
||||||
trigger:
|
trigger:
|
||||||
- platform: time
|
- platform: time
|
||||||
at: '16:00:00'
|
at: "16:00:00"
|
||||||
- platform: time
|
- platform: time
|
||||||
at: '17:00:00'
|
at: "17:00:00"
|
||||||
- platform: time
|
- platform: time
|
||||||
at: '18:00:00'
|
at: "18:00:00"
|
||||||
- platform: time
|
- platform: time
|
||||||
at: '19:00:00'
|
at: "19:00:00"
|
||||||
- platform: time
|
- platform: time
|
||||||
at: '20:00:00'
|
at: "20:00:00"
|
||||||
- platform: time
|
- platform: time
|
||||||
at: '21:00:00'
|
at: "21:00:00"
|
||||||
condition:
|
condition:
|
||||||
condition: and
|
condition: and
|
||||||
conditions:
|
conditions:
|
||||||
|
@ -289,34 +287,11 @@ automation:
|
||||||
conditions:
|
conditions:
|
||||||
- condition: state
|
- condition: state
|
||||||
entity_id: sensor.trash_day
|
entity_id: sensor.trash_day
|
||||||
state: 'yes'
|
state: "yes"
|
||||||
- condition: state
|
- condition: state
|
||||||
entity_id: sensor.recycle_day
|
entity_id: sensor.recycle_day
|
||||||
state: 'yes'
|
state: "yes"
|
||||||
action:
|
action:
|
||||||
- service: notify.ios_suresh
|
|
||||||
data_template:
|
|
||||||
title: >
|
|
||||||
{% if states.sensor.trash_day.state == "yes" and states.sensor.recycle_day.state == "yes" %}
|
|
||||||
Trash and Recycle Pickup Tomorrow!
|
|
||||||
{% elif states.sensor.trash_day.state == "yes" %}
|
|
||||||
Trash Pickup Tomorrow!
|
|
||||||
{% elif states.sensor.recycle_day.state == "yes" %}
|
|
||||||
Recycle Pickup Tomorrow!
|
|
||||||
{% endif %}
|
|
||||||
message: >
|
|
||||||
{% if states.sensor.trash_day.state == "yes" and states.sensor.recycle_day.state == "yes" %}
|
|
||||||
Please leave Trash AND Recycle bins out tonight!
|
|
||||||
{% elif states.sensor.trash_day.state == "yes" %}
|
|
||||||
Please leave Trash bin outside tonight!
|
|
||||||
{% elif states.sensor.recycle_day.state == "yes" %}
|
|
||||||
Please leave Recycle bin outside tonight!
|
|
||||||
{% endif %}
|
|
||||||
data:
|
|
||||||
push:
|
|
||||||
badge: 0
|
|
||||||
category: "trash_recycle"
|
|
||||||
|
|
||||||
- service: script.notify_me
|
- service: script.notify_me
|
||||||
data_template:
|
data_template:
|
||||||
message: >
|
message: >
|
||||||
|
@ -340,39 +315,11 @@ automation:
|
||||||
Attention!: Tomorrow is the Recycle Pickup day. Please don't forget to put the recycle bin outside tonight!
|
Attention!: Tomorrow is the Recycle Pickup day. Please don't forget to put the recycle bin outside tonight!
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
- alias: Trash and Recycle Bin Left Outside Already
|
|
||||||
initial_state: true
|
|
||||||
trigger:
|
|
||||||
platform: event
|
|
||||||
event_type: ios.notification_action_fired
|
|
||||||
event_data:
|
|
||||||
actionName: TRASH_LEFT
|
|
||||||
action:
|
|
||||||
- service: notify.ios_suresh
|
|
||||||
data:
|
|
||||||
message: "Great job, Thank you!"
|
|
||||||
- service: input_boolean.turn_off
|
|
||||||
entity_id: input_boolean.trash_reminders
|
|
||||||
|
|
||||||
- alias: Remind later
|
|
||||||
initial_state: true
|
|
||||||
trigger:
|
|
||||||
platform: event
|
|
||||||
event_type: ios.notification_action_fired
|
|
||||||
event_data:
|
|
||||||
actionName: TRASH_REMIND_LATER
|
|
||||||
action:
|
|
||||||
- service: notify.ios_suresh
|
|
||||||
data:
|
|
||||||
message: "Will remind you again in an hour!"
|
|
||||||
- service: input_boolean.turn_on
|
|
||||||
entity_id: input_boolean.trash_reminders
|
|
||||||
|
|
||||||
- alias: Reset Trash Reminders
|
- alias: Reset Trash Reminders
|
||||||
initial_state: true
|
initial_state: true
|
||||||
trigger:
|
trigger:
|
||||||
- platform: time
|
- platform: time
|
||||||
at: '09:00:00'
|
at: "09:00:00"
|
||||||
action:
|
action:
|
||||||
- service: input_boolean.turn_on
|
- service: input_boolean.turn_on
|
||||||
entity_id: input_boolean.trash_reminders
|
entity_id: input_boolean.trash_reminders
|
||||||
|
|
|
@ -122,11 +122,15 @@ script:
|
||||||
entity_id: >
|
entity_id: >
|
||||||
{%- for state in states.switch if
|
{%- for state in states.switch if
|
||||||
state.entity_id != 'switch.3d_printer' and
|
state.entity_id != 'switch.3d_printer' and
|
||||||
|
state.entity_id != 'switch.tesla_model_3_charger_switch' and
|
||||||
|
state.entity_id != 'switch.tesla_model_3_maxrange_switch' and
|
||||||
|
state.entity_id != 'switch.tesla_model_3_update_switch' and
|
||||||
|
state.entity_id != 'switch.mahasri_tesla_sentry_mode_switch' and
|
||||||
state.entity_id != 'switch.wemoswitch1' and
|
state.entity_id != 'switch.wemoswitch1' and
|
||||||
state.entity_id != 'switch.wallmote_switch' and
|
state.entity_id != 'switch.wallmote_switch' and
|
||||||
state.entity_id != 'switch.wemobackyardlightswitch' and
|
state.entity_id != 'switch.wemobackyardlightswitch' and
|
||||||
state.entity_id != 'switch.frontyard_light' and
|
state.entity_id != 'switch.frontyard_light' and
|
||||||
not '_siren_' in state.entity_id -%}
|
not 'ecolink' in state.entity_id -%}
|
||||||
{{- "," if not loop.first-}}{{ state.entity_id }}{{-endif-}}
|
{{- "," if not loop.first-}}{{ state.entity_id }}{{-endif-}}
|
||||||
{%- endfor -%}
|
{%- endfor -%}
|
||||||
|
|
||||||
|
@ -280,24 +284,21 @@ script:
|
||||||
# |___/
|
# |___/
|
||||||
# Notify Related Scripts
|
# Notify Related Scripts
|
||||||
###############################################################################
|
###############################################################################
|
||||||
ifttt_notify:
|
notify_me_with_picture:
|
||||||
sequence:
|
sequence:
|
||||||
|
- condition: state
|
||||||
|
entity_id: input_boolean.text_alerts
|
||||||
|
state: "on"
|
||||||
- condition: template
|
- condition: template
|
||||||
value_template: '{{ message | trim != "" }}'
|
value_template: '{{- message | trim != "" -}}'
|
||||||
- service: ifttt.trigger
|
- service: notify.telegram
|
||||||
data_template:
|
data_template:
|
||||||
event: "Smart_Home"
|
title: "{{- title -}}"
|
||||||
value1: "{{ message }}"
|
message: "{{- message -}}"
|
||||||
value2: ""
|
data:
|
||||||
|
photo:
|
||||||
ifttt_leeo_color_change:
|
- file: "{{- file -}}"
|
||||||
sequence:
|
caption: "{{- caption -}}"
|
||||||
- condition: template
|
|
||||||
value_template: '{{ value1 | trim != "" }}'
|
|
||||||
- service: ifttt.trigger
|
|
||||||
data_template:
|
|
||||||
event: "LEEO_COLOR_CHANGE"
|
|
||||||
value1: "{{ value1 }}"
|
|
||||||
|
|
||||||
notify_me:
|
notify_me:
|
||||||
sequence:
|
sequence:
|
||||||
|
@ -306,9 +307,6 @@ script:
|
||||||
state: "on"
|
state: "on"
|
||||||
- condition: template
|
- condition: template
|
||||||
value_template: '{{ message | trim != "" }}'
|
value_template: '{{ message | trim != "" }}'
|
||||||
- service: script.ifttt_notify
|
|
||||||
data_template:
|
|
||||||
message: "{{ message }}"
|
|
||||||
- service: notify.telegram
|
- service: notify.telegram
|
||||||
data_template:
|
data_template:
|
||||||
message: "{{ message }}"
|
message: "{{ message }}"
|
||||||
|
@ -327,9 +325,6 @@ script:
|
||||||
###############################################################################
|
###############################################################################
|
||||||
voice_notify:
|
voice_notify:
|
||||||
sequence:
|
sequence:
|
||||||
# - service: script.led_message
|
|
||||||
# data_template:
|
|
||||||
# message: "{{ message }}"
|
|
||||||
- condition: template
|
- condition: template
|
||||||
value_template: "{{ states('input_boolean.voice_notifications') == 'on' }}"
|
value_template: "{{ states('input_boolean.voice_notifications') == 'on' }}"
|
||||||
- condition: template
|
- condition: template
|
||||||
|
|
|
@ -243,7 +243,7 @@
|
||||||
</CommandClass>
|
</CommandClass>
|
||||||
</CommandClasses>
|
</CommandClasses>
|
||||||
</Node>
|
</Node>
|
||||||
<Node id="11" name="" location="" basic="4" generic="33" specific="1" roletype="6" devicetype="3079" nodetype="0" type="Routing Multilevel Sensor" listening="false" frequentListening="false" beaming="true" routing="true" max_baud_rate="40000" version="4" query_stage="Complete">
|
<Node id="11" name="" location="" basic="4" generic="33" specific="1" roletype="6" devicetype="3079" nodetype="0" type="Routing Multilevel Sensor" listening="false" frequentListening="false" beaming="true" routing="true" max_baud_rate="40000" version="4" query_stage="CacheLoad">
|
||||||
<Manufacturer id="86" name="AEON Labs">
|
<Manufacturer id="86" name="AEON Labs">
|
||||||
<Product type="102" id="64" name="ZW100 MultiSensor 6" />
|
<Product type="102" id="64" name="ZW100 MultiSensor 6" />
|
||||||
</Manufacturer>
|
</Manufacturer>
|
||||||
|
@ -259,9 +259,9 @@
|
||||||
</CommandClass>
|
</CommandClass>
|
||||||
<CommandClass id="49" name="COMMAND_CLASS_SENSOR_MULTILEVEL" version="5" innif="true">
|
<CommandClass id="49" name="COMMAND_CLASS_SENSOR_MULTILEVEL" version="5" innif="true">
|
||||||
<Instance index="1" />
|
<Instance index="1" />
|
||||||
<Value type="decimal" genre="user" instance="1" index="1" label="Temperature" units="F" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="79.2" />
|
<Value type="decimal" genre="user" instance="1" index="1" label="Temperature" units="F" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="75.3" />
|
||||||
<Value type="decimal" genre="user" instance="1" index="3" label="Luminance" units="lux" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="3" />
|
<Value type="decimal" genre="user" instance="1" index="3" label="Luminance" units="lux" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0" />
|
||||||
<Value type="decimal" genre="user" instance="1" index="5" label="Relative Humidity" units="%" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="54" />
|
<Value type="decimal" genre="user" instance="1" index="5" label="Relative Humidity" units="%" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="55" />
|
||||||
<Value type="decimal" genre="user" instance="1" index="27" label="Ultraviolet" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0" />
|
<Value type="decimal" genre="user" instance="1" index="27" label="Ultraviolet" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0" />
|
||||||
</CommandClass>
|
</CommandClass>
|
||||||
<CommandClass id="90" name="COMMAND_CLASS_DEVICE_RESET_LOCALLY" version="1" request_flags="4" innif="true">
|
<CommandClass id="90" name="COMMAND_CLASS_DEVICE_RESET_LOCALLY" version="1" request_flags="4" innif="true">
|
||||||
|
@ -547,9 +547,9 @@
|
||||||
<Instance index="1" />
|
<Instance index="1" />
|
||||||
<Value type="decimal" genre="user" instance="1" index="0" label="Energy" units="kWh" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="61.693" />
|
<Value type="decimal" genre="user" instance="1" index="0" label="Energy" units="kWh" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="61.693" />
|
||||||
<Value type="decimal" genre="user" instance="1" index="1" label="Previous Reading" units="kWh" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="61.693" />
|
<Value type="decimal" genre="user" instance="1" index="1" label="Previous Reading" units="kWh" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="61.693" />
|
||||||
<Value type="int" genre="user" instance="1" index="2" label="Interval" units="seconds" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-2147483648" max="2147483647" value="3477" />
|
<Value type="int" genre="user" instance="1" index="2" label="Interval" units="seconds" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-2147483648" max="2147483647" value="232" />
|
||||||
<Value type="decimal" genre="user" instance="1" index="8" label="Power" units="W" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0.000" />
|
<Value type="decimal" genre="user" instance="1" index="8" label="Power" units="W" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0.000" />
|
||||||
<Value type="decimal" genre="user" instance="1" index="16" label="Voltage" units="V" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="120.813" />
|
<Value type="decimal" genre="user" instance="1" index="16" label="Voltage" units="V" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="122.888" />
|
||||||
<Value type="decimal" genre="user" instance="1" index="20" label="Current" units="A" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0.000" />
|
<Value type="decimal" genre="user" instance="1" index="20" label="Current" units="A" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0.000" />
|
||||||
<Value type="bool" genre="user" instance="1" index="32" label="Exporting" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="False" />
|
<Value type="bool" genre="user" instance="1" index="32" label="Exporting" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="False" />
|
||||||
<Value type="button" genre="system" instance="1" index="33" label="Reset" units="" read_only="false" write_only="true" verify_changes="false" poll_intensity="0" min="0" max="0" />
|
<Value type="button" genre="system" instance="1" index="33" label="Reset" units="" read_only="false" write_only="true" verify_changes="false" poll_intensity="0" min="0" max="0" />
|
||||||
|
@ -719,7 +719,7 @@
|
||||||
</CommandClass>
|
</CommandClass>
|
||||||
<CommandClass id="129" name="COMMAND_CLASS_CLOCK" version="1" request_flags="4" innif="true">
|
<CommandClass id="129" name="COMMAND_CLASS_CLOCK" version="1" request_flags="4" innif="true">
|
||||||
<Instance index="1" />
|
<Instance index="1" />
|
||||||
<Value type="list" genre="user" instance="1" index="0" label="Day" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" vindex="2" size="1">
|
<Value type="list" genre="user" instance="1" index="0" label="Day" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" vindex="4" size="1">
|
||||||
<Item label="Monday" value="1" />
|
<Item label="Monday" value="1" />
|
||||||
<Item label="Tuesday" value="2" />
|
<Item label="Tuesday" value="2" />
|
||||||
<Item label="Wednesday" value="3" />
|
<Item label="Wednesday" value="3" />
|
||||||
|
@ -728,8 +728,8 @@
|
||||||
<Item label="Saturday" value="6" />
|
<Item label="Saturday" value="6" />
|
||||||
<Item label="Sunday" value="7" />
|
<Item label="Sunday" value="7" />
|
||||||
</Value>
|
</Value>
|
||||||
<Value type="byte" genre="user" instance="1" index="1" label="Hour" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="10" />
|
<Value type="byte" genre="user" instance="1" index="1" label="Hour" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="12" />
|
||||||
<Value type="byte" genre="user" instance="1" index="2" label="Minute" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="51" />
|
<Value type="byte" genre="user" instance="1" index="2" label="Minute" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="16" />
|
||||||
</CommandClass>
|
</CommandClass>
|
||||||
<CommandClass id="130" name="COMMAND_CLASS_HAIL" version="1" request_flags="4" after_mark="true" innif="true">
|
<CommandClass id="130" name="COMMAND_CLASS_HAIL" version="1" request_flags="4" after_mark="true" innif="true">
|
||||||
<Instance index="1" />
|
<Instance index="1" />
|
||||||
|
@ -749,7 +749,7 @@
|
||||||
</CommandClass>
|
</CommandClass>
|
||||||
</CommandClasses>
|
</CommandClasses>
|
||||||
</Node>
|
</Node>
|
||||||
<Node id="17" name="" location="" basic="4" generic="7" specific="1" roletype="6" devicetype="3072" nodetype="0" type="Notification Sensor" listening="false" frequentListening="false" beaming="true" routing="true" max_baud_rate="40000" version="4" query_stage="Complete">
|
<Node id="17" name="" location="" basic="4" generic="7" specific="1" roletype="6" devicetype="3072" nodetype="0" type="Notification Sensor" listening="false" frequentListening="false" beaming="true" routing="true" max_baud_rate="40000" version="4" query_stage="CacheLoad">
|
||||||
<Manufacturer id="14a" name="Ecolink">
|
<Manufacturer id="14a" name="Ecolink">
|
||||||
<Product type="4" id="1" name="Motion Detector" />
|
<Product type="4" id="1" name="Motion Detector" />
|
||||||
</Manufacturer>
|
</Manufacturer>
|
||||||
|
@ -1139,7 +1139,7 @@
|
||||||
</CommandClass>
|
</CommandClass>
|
||||||
<CommandClass id="49" name="COMMAND_CLASS_SENSOR_MULTILEVEL" version="7" innif="true">
|
<CommandClass id="49" name="COMMAND_CLASS_SENSOR_MULTILEVEL" version="7" innif="true">
|
||||||
<Instance index="1" />
|
<Instance index="1" />
|
||||||
<Value type="decimal" genre="user" instance="1" index="1" label="Temperature" units="F" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="73.22" />
|
<Value type="decimal" genre="user" instance="1" index="1" label="Temperature" units="C" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="24.90" />
|
||||||
</CommandClass>
|
</CommandClass>
|
||||||
<CommandClass id="90" name="COMMAND_CLASS_DEVICE_RESET_LOCALLY" version="1" request_flags="4" innif="true">
|
<CommandClass id="90" name="COMMAND_CLASS_DEVICE_RESET_LOCALLY" version="1" request_flags="4" innif="true">
|
||||||
<Instance index="1" />
|
<Instance index="1" />
|
||||||
|
@ -1357,9 +1357,9 @@
|
||||||
</CommandClass>
|
</CommandClass>
|
||||||
<CommandClass id="49" name="COMMAND_CLASS_SENSOR_MULTILEVEL" version="5" innif="true">
|
<CommandClass id="49" name="COMMAND_CLASS_SENSOR_MULTILEVEL" version="5" innif="true">
|
||||||
<Instance index="1" />
|
<Instance index="1" />
|
||||||
<Value type="decimal" genre="user" instance="1" index="1" label="Temperature" units="F" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="81.1" />
|
<Value type="decimal" genre="user" instance="1" index="1" label="Temperature" units="C" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="25.7" />
|
||||||
<Value type="decimal" genre="user" instance="1" index="3" label="Luminance" units="lux" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0" />
|
<Value type="decimal" genre="user" instance="1" index="3" label="Luminance" units="lux" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0" />
|
||||||
<Value type="decimal" genre="user" instance="1" index="5" label="Relative Humidity" units="%" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="49" />
|
<Value type="decimal" genre="user" instance="1" index="5" label="Relative Humidity" units="%" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="48" />
|
||||||
<Value type="decimal" genre="user" instance="1" index="27" label="Ultraviolet" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0" />
|
<Value type="decimal" genre="user" instance="1" index="27" label="Ultraviolet" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0" />
|
||||||
</CommandClass>
|
</CommandClass>
|
||||||
<CommandClass id="90" name="COMMAND_CLASS_DEVICE_RESET_LOCALLY" version="1" request_flags="4" innif="true">
|
<CommandClass id="90" name="COMMAND_CLASS_DEVICE_RESET_LOCALLY" version="1" request_flags="4" innif="true">
|
||||||
|
|
Loading…
Reference in New Issue