Updated with @Brianhanifin 's excellent code updates! New speech helpers and formatted light codes!

This commit is contained in:
ccostan 2018-06-06 19:00:28 -04:00
parent 8d2291b66d
commit 488309d610
3 changed files with 48 additions and 25 deletions

View File

@ -1,19 +0,0 @@
#-------------------------------------------
# Bruh Light Sensor Related Packages
#-------------------------------------------
#------LightSensor Node---http://amzn.to/2oUgj5i
homeassistant:
customize:
sensor.sn1_ldr:
icon: mdi:sensor
friendly_name: Light Sensor
#emulated_hue_hidden: False
hidden: False
#---Sensor for Light-----------------------------
sensor:
- platform: mqtt
state_topic: "home/sensornode1"
name: "SN1 LDR"
##This sensor is not calibrated to actual LUX. Rather, this a map of the input voltage ranging from 0 - 1023.
unit_of_measurement: "LUX"
value_template: '{{ value_json.ldr }}'

View File

@ -0,0 +1,31 @@
#-------------------------------------------
# @BrianHanifin's Light sensor speech helper. - https://gist.github.com/brianhanifin/1f9436c7b6c28917c9be02605b6cff74
#-------------------------------------------
#------LightSensor Node---http://amzn.to/2oUgj5i
homeassistant:
customize:
sensor.lights_on:
icon: mdi:sensor
friendly_name: Lights on
#emulated_hue_hidden: False
hidden: true
#---Sensor for Light-----------------------------
sensor:
- platform: template
sensors:
lights_on:
value_template: >
{% macro get_lights_on() -%}
{%- for group in states.group|groupby('state') -%}
{%- for entity in group.list -%}
{%- if entity.state == 'on'
and entity.name.split(' ')[1]|lower == 'lights'
and entity.name.split(' ')[0]|lower != 'interior'
and entity.name.split(' ')[0]|lower != 'all'
-%}
{{ entity.entity_id }}{{ ' ' }}
{%- endif -%}
{%- endfor -%}
{%- endfor -%}
{%- endmacro %}
{{ get_lights_on()|trim|replace(' ', ',') }}

View File

@ -75,15 +75,26 @@ speech_engine:
Outside, it is going to be {{ states('sensor.dark_sky_minutely_summary') }}
{%- endmacro -%}
{%- macro friendly_list(list) -%}
{%- set temp = list|replace('_',' ')|replace(' ,',',')|replace(',',', ')|trim|title -%}
{%- if list.split(',')|length > 1 -%}
{%- set temp = temp+'^' -%}
{%- set lastitem = temp.split(',')|last -%}
{{ temp|replace(lastitem, ' and' + lastitem)|replace('^','') }}
{%- else -%}
{{ temp }}
{%- endif -%}
{%- endmacro -%}
{%- macro light_check() -%}
{% if states.group.all_lights.state != 'off' -%}
There are
{%- set lights_on_count = sensor.lights_on_friendly|length + 1 -%}
{%- if states.sensor.lights_on.state|length != 0 -%}
{%- set lights_on_count = states.sensor.lights_on.state.split(',')|length -%}
{%- set lights_on_friendly = friendly_list(states.sensor.lights_on.state|replace('light.','')|replace('switch.','')|replace('light','')|replace('lamp','')) -%}
{%- if lights_on_count == 1 -%}
The {{ sensor.lights_on_friendly }} is the only light on right now.
The {{ lights_on_friendly }} light is on.
{%- else -%}
There are {{ lights_on_count }} lights on right now.
The {{ sensor.lights_on_friendly }} are on.
The {{ lights_on_friendly }} lights are on.
{%- endif -%}
{%- endif -%}
{%- endmacro -%}