Lots of troubleshooting and stuff related to OpenAI #1368
This commit is contained in:
parent
6a1c81c0cb
commit
ca3b3b3360
|
@ -1 +1 @@
|
|||
2024.8.0.dev202407020219
|
||||
2024.8.0.dev202407200219
|
|
@ -39,7 +39,7 @@
|
|||
personarriving: >
|
||||
{% set person = expand('group.arriving')|map(attribute='name')|join(' and ') %}
|
||||
{%- macro greeting_sentence(person) -%}
|
||||
{{ ["[Welcome " ~ person + " home]"] }}
|
||||
{{"[Welcome " + person + " home]" }}
|
||||
{%- endmacro -%}
|
||||
|
||||
{{greeting_sentence(person)}}
|
||||
|
|
|
@ -113,7 +113,7 @@ group: !include_dir_merge_named group
|
|||
sensor: !include_dir_merge_list sensor
|
||||
automation: !include_dir_merge_list automation
|
||||
scene: !include_dir_merge_list scene
|
||||
switch: !include_dir_merge_list switch
|
||||
# switch: !include_dir_merge_list switch
|
||||
script: !include_dir_merge_named script
|
||||
input_boolean: !include_dir_merge_named input_boolean
|
||||
shell_command: !include_dir_merge_named shell_command
|
||||
|
|
|
@ -1,39 +0,0 @@
|
|||
#-------------------------------------------
|
||||
# @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_
|
||||
|
||||
#---Sensor for Light-----------------------------
|
||||
sensor:
|
||||
- platform: template
|
||||
sensors:
|
||||
lights_on:
|
||||
value_template: >
|
||||
{% macro get_lights_on() -%}
|
||||
{%- for group in states.light|groupby('state') -%}
|
||||
{%- for entity in group.list -%}
|
||||
{%- if entity.state == 'on'
|
||||
and entity.entity_id != 'light.dummy'
|
||||
and entity.entity_id != 'light.garage_entry_light'
|
||||
and entity.entity_id != 'light.hue'
|
||||
and entity.entity_id != 'light.living_room'
|
||||
and entity.entity_id != 'light.kitchen_undercabinet'
|
||||
and entity.entity_id != 'light.porch_light'
|
||||
and entity.entity_id != 'light.shoe_closet_light'
|
||||
and not ('gateway_light' in entity.entity_id)
|
||||
and not ('hub' in entity.entity_id)
|
||||
and not (entity.entity_id).endswith('_led')
|
||||
and not (entity.entity_id).endswith('nightlight')
|
||||
and not (entity.entity_id).startswith('light.lamplinc') -%}
|
||||
{{ entity.entity_id }}{{ ' ' }}
|
||||
{%- endif -%}
|
||||
{%- endfor -%}
|
||||
{%- endfor -%}
|
||||
{%- endmacro %}
|
||||
{{ get_lights_on()|trim|replace(' ', ',') }}
|
|
@ -7,22 +7,34 @@ homeassistant:
|
|||
input_boolean.lastmsg:
|
||||
friendly_name: 'Repeat Message'
|
||||
icon: mdi:repeat-once
|
||||
|
||||
|
||||
|
||||
#-------------------------------------------
|
||||
input_boolean:
|
||||
lastmsg:
|
||||
name: Last Message
|
||||
initial: off
|
||||
#-------------------------------------------
|
||||
mqtt:
|
||||
sensor:
|
||||
- state_topic: "polly/lastmsg"
|
||||
name: "Last Message"
|
||||
|
||||
- state_topic: "polly/lastmsg_openai"
|
||||
name: "Last AI Message"
|
||||
|
||||
template:
|
||||
- trigger:
|
||||
platform: event
|
||||
event_type: openai_instructions_sent
|
||||
sensor:
|
||||
- name: "OpenAI"
|
||||
state: "{{now()}}"
|
||||
attributes:
|
||||
instructions: "{{ trigger.event.data.instructions }}"
|
||||
|
||||
- trigger:
|
||||
platform: event
|
||||
event_type: openai_response
|
||||
sensor:
|
||||
- name: "OpenAI"
|
||||
state: "{{now()}}"
|
||||
attributes:
|
||||
response: "{{ trigger.event.data.response }}"
|
||||
|
||||
|
||||
##############################################################################
|
||||
### Automations -
|
||||
##############################################################################
|
||||
|
@ -46,7 +58,7 @@ automation:
|
|||
options:
|
||||
voice: JennyNeural
|
||||
message: >-
|
||||
{{states.sensor.last_ai_message.state}}
|
||||
"{{ state_attr('sensor.openai', 'response') }}"
|
||||
cache: false
|
||||
|
||||
- service: input_boolean.turn_off
|
||||
|
|
|
@ -2,17 +2,14 @@
|
|||
# @CCOSTAN
|
||||
# Original Repo : https://github.com/CCOSTAN/Home-AssistantConfig
|
||||
# Neato Support for D7 Connected Botvac - control my [Neato Vacuum](https://amzn.to/2kqnnqu) with Home Assistant.
|
||||
# Switched from Neato to Dreame Vacuum - https://amzn.to/4f7NpFP
|
||||
#-------------------------------------------
|
||||
|
||||
##############################################################################
|
||||
### Configuration - Authentication via the DEVELOPER Portal
|
||||
### HACS - https://github.com/Tasshack/dreame-vacuum
|
||||
##############################################################################
|
||||
|
||||
# neato:
|
||||
# client_id: !secret neato_client_id
|
||||
# client_secret: !secret neato_client_secret
|
||||
|
||||
|
||||
automation:
|
||||
|
||||
##############################################################################
|
||||
|
@ -20,19 +17,18 @@ automation:
|
|||
### https://www.vcloudinfo.com/2020/05/home-assistant-neato-vacuum-automation.html
|
||||
##############################################################################
|
||||
|
||||
- alias: 'Help Neato'
|
||||
- alias: 'Help Vacuum'
|
||||
id: 6548de52-a4a4-4df2-9d66-9c2c15577a7e
|
||||
trigger:
|
||||
- platform: state
|
||||
entity_id: vacuum.neato_vac
|
||||
to: 'error'
|
||||
entity_id: sensor.l10s_vacuum_error
|
||||
from: 'No error'
|
||||
- platform: event
|
||||
event_type: event_did_someone_help_neato_loop
|
||||
event_type: event_did_someone_help_vacuum_loop
|
||||
|
||||
condition:
|
||||
- condition: state
|
||||
entity_id: vacuum.neato_vac
|
||||
state: 'error'
|
||||
- condition: template
|
||||
value_template: "{{ states('sensor.l10s_vacuum_error') != 'No error' }}"
|
||||
|
||||
action:
|
||||
- wait_template: "{{ states.group.family.state == 'home' }}"
|
||||
|
@ -40,27 +36,27 @@ automation:
|
|||
- delay: 00:05:00
|
||||
|
||||
- service: vacuum.locate
|
||||
entity_id: vacuum.neato_vac
|
||||
entity_id: vacuum.l10s_vacuum
|
||||
|
||||
- service: script.speech_engine
|
||||
data:
|
||||
value1: >
|
||||
{% set error = states.vacuum.neato_vac.attributes['status'] %}
|
||||
{{ "Neato Vacuum is complaining about " ~ error ~ " [ask Residents to help]" }}
|
||||
value1: >
|
||||
{% set error_description = state_attr('sensor.l10s_vacuum_error', 'description') %}
|
||||
{{ "Vacuum is complaining: " ~ error_description ~ " [ask Residents to help]" }}
|
||||
|
||||
- service: script.notify_engine
|
||||
data:
|
||||
title: 'Help Neato'
|
||||
value1: "{{ states.vacuum.neato_vac.attributes['status'] }}"
|
||||
title: 'Help vacuum'
|
||||
value1: "{{ state_attr('sensor.l10s_vacuum_error', 'description') }}"
|
||||
who: 'family'
|
||||
ios_category: 'camera'
|
||||
camera_entity: 'camera.neato_vac_cleaning_map'
|
||||
camera_entity: 'camera.l10s_vacuum_map'
|
||||
content_type: 'jpeg'
|
||||
group: 'information'
|
||||
|
||||
- delay: 00:01:00
|
||||
- service: vacuum.locate
|
||||
entity_id: vacuum.neato_vac
|
||||
entity_id: vacuum.l10s_vacuum
|
||||
|
||||
- delay: 00:20:00
|
||||
- event: event_did_someone_help_neato_loop
|
||||
- event: event_did_someone_help_vacuum_loop
|
|
@ -11,12 +11,11 @@
|
|||
speech_processing:
|
||||
mode: queued
|
||||
sequence:
|
||||
- service: mqtt.publish
|
||||
data:
|
||||
topic: 'polly/lastmsg'
|
||||
payload: "Message: {{ now().strftime('%-I') }}:{{ now().strftime('%M') }} {{ now().strftime('%p') }}. {{ speech_message | striptags | truncate(220)}}"
|
||||
retain: true
|
||||
|
||||
- event: openai_instructions_sent
|
||||
event_data:
|
||||
instructions: "{{ speech_message | striptags }}"
|
||||
|
||||
- condition: and
|
||||
conditions:
|
||||
- condition: or
|
||||
|
@ -60,23 +59,10 @@ speech_processing:
|
|||
0.2
|
||||
{% endif %}
|
||||
|
||||
# - service: tts.amazon_polly_say
|
||||
# data:
|
||||
# entity_id: media_player.livingroomCC
|
||||
# message: >-
|
||||
# <speak>
|
||||
# <amazon:auto-breaths>
|
||||
# {{ speech_message }}
|
||||
# </amazon:auto-breaths>
|
||||
# </speak>
|
||||
# cache: true
|
||||
|
||||
- service: conversation.process
|
||||
data:
|
||||
agent_id: conversation.openai_conversation
|
||||
text: >-
|
||||
Take the following system generated information and review and relay the information as yourself.
|
||||
Here is the information:
|
||||
{{ speech_message }}
|
||||
response_variable: agent
|
||||
|
||||
|
@ -89,11 +75,9 @@ speech_processing:
|
|||
{{ agent.response.speech.plain.speech }}
|
||||
cache: true
|
||||
|
||||
- service: mqtt.publish
|
||||
data:
|
||||
topic: 'polly/lastmsg_openai'
|
||||
payload: "Message: {{ now().strftime('%-I') }}:{{ now().strftime('%M') }} {{ now().strftime('%p') }}. {{ agent.response.speech.plain.speech | striptags | truncate(220)}}"
|
||||
retain: true
|
||||
- event: openai_iresponse
|
||||
event_data:
|
||||
response: "{{ now().strftime('%B %d,%Y %-I:%M %p') }} {{ now().strftime('%p') }}. {{ agent.response.speech.plain.speech | striptags}}"
|
||||
|
||||
- service: input_boolean.turn_off
|
||||
data:
|
||||
|
|
|
@ -6,17 +6,11 @@
|
|||
{%- macro responsibilities() -%}
|
||||
{% set day_of_week = now().strftime('%a') %}
|
||||
{% if day_of_week in ['Wed', 'Sun'] %}
|
||||
Today is {{ now().strftime('%A') }} and {{ now().strftime('%A') }} is garbage day.
|
||||
Today is garbage day.
|
||||
{% if day_of_week == 'Wed' %}
|
||||
Both Recycling and regular Garbage goes out.
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% set day_of_year = now().strftime('%j')|int(9999) %}
|
||||
{% if day_of_year % 2 != 0 %}
|
||||
Today is Justin's day to do the chores.
|
||||
{% else %}
|
||||
Today is Paige's day to do the chores.
|
||||
{% endif %}
|
||||
{%- endmacro -%}
|
||||
|
||||
{%- macro inside_weather() -%}
|
||||
|
@ -51,10 +45,16 @@
|
|||
{%- endif -%}
|
||||
{%- endif %}
|
||||
{% endfor -%}
|
||||
|
||||
{%- if states('sensor.pirateweather_alerts') == '1' -%}
|
||||
{%- set alert_description = state_attr('sensor.pirateweather_alerts', 'description') %}
|
||||
[WEATHER ALERT: Summarize the WHAT, WHEN and IMPACTS.] {{ alert_description }}
|
||||
{%- endif %}
|
||||
{%- endmacro -%}
|
||||
|
||||
{%- macro lightning() -%}
|
||||
There have been {{ states('sensor.blitzortung_lightning_counter') }} lightning strikes detected within {{(states('sensor.blitzortung_lightning_distance') | int(9999)/ 1.69) | round (1, 'floor')}} Miles of our House. Please make sure everyone is inside the house.
|
||||
There have been {{ states('sensor.blitzortung_lightning_counter') }} lightning strikes detected within {{(states('sensor.blitzortung_lightning_distance') | int(9999)/ 1.69) | round (1, 'floor')}} Miles of our House.
|
||||
Nearest Storm Distance : {{states('sensor.pirateweather_nearest_storm_distance')}} Miles.
|
||||
{%- endmacro -%}
|
||||
|
||||
{%- macro fridge() -%}
|
||||
|
@ -215,11 +215,27 @@
|
|||
|
||||
{# a macro to call all macros :) #}
|
||||
{%- macro mother_of_all_macros() -%}
|
||||
|
||||
|
||||
{# Augmenting the System Prompt for OpenAI #}
|
||||
{% set current_date = now() %}
|
||||
{% set month = current_date.strftime('%B') %}
|
||||
{% set day_of_week = now().strftime('%a') %}
|
||||
{% set hour = now().hour %}
|
||||
{% set minute = now().minute %}
|
||||
{% set day = current_date.strftime('%d') %}
|
||||
{% set year = current_date.strftime('%Y') %}
|
||||
{% set time = current_date.strftime('%I:%M %p') %}
|
||||
Current date time: {{ month }} {{ day }}, {{ year }} {{ time }}
|
||||
Residents:
|
||||
- Carlo (Dad): {{ states('person.carlo') }}
|
||||
- Stacey (Mom): {{ states('person.stacey') }}
|
||||
- Justin (Son): {{ states('person.justin') }}
|
||||
- Paige (Daughter): {{ states('person.paige') }}
|
||||
and our cat Molly: Always home.
|
||||
[Avoid repeating information from the last broadcast if it was recently broadcasted]
|
||||
Last broadcast: {{states('input_text.lastmsg_openai')}}
|
||||
|
||||
New Information:
|
||||
{% if call_no_announcement != 1 %}
|
||||
{% if now().strftime('%H')|int(9999)< 12 and now().strftime('%H')|int(9999)> 6 %}
|
||||
Good morning.
|
||||
|
|
File diff suppressed because one or more lines are too long
Binary file not shown.
File diff suppressed because one or more lines are too long
Binary file not shown.
Loading…
Reference in New Issue