mirror of
https://github.com/CCOSTAN/Home-AssistantConfig.git
synced 2025-12-12 10:02:18 +00:00
Merge pull request #1549 from CCOSTAN/llm-vision
This commit is contained in:
@@ -1,37 +0,0 @@
|
||||
#-------------------------------------------
|
||||
# @CCOSTAN
|
||||
# Original Repo : https://github.com/CCOSTAN/Home-AssistantConfig
|
||||
# Backups - Monitor backup jobs and alert on failures.
|
||||
#-------------------------------------------
|
||||
######################################################################
|
||||
## Duplicati/backup status sensors and notifications.
|
||||
######################################################################
|
||||
# Added Duplicati to HA - https://github.com/CCOSTAN/Home-AssistantConfig/issues/1498
|
||||
automation:
|
||||
- alias: 'Backup Job Failed Notification'
|
||||
id: 5b3a4c89-1234-4567-8901-23456789abcf
|
||||
trigger:
|
||||
- platform: state
|
||||
entity_id: sensor.dockerconfigs_backup_error_message
|
||||
from: '-'
|
||||
action:
|
||||
- service: script.notify_engine
|
||||
data:
|
||||
who: 'carlo'
|
||||
value1: 'Backup Job Error!'
|
||||
value2: "Error: {{ states('sensor.dockerconfigs_backup_error_message') }}"
|
||||
|
||||
- alias: 'Backup Size Change Alert'
|
||||
id: 5b3a4c89-1234-4567-8901-23456789abd0
|
||||
trigger:
|
||||
- platform: numeric_state
|
||||
entity_id: sensor.dockerconfigs_backup_target_size
|
||||
above: 10000000000 # Alert if backup size is over 10GB
|
||||
action:
|
||||
- service: script.notify_engine
|
||||
data:
|
||||
who: 'carlo'
|
||||
value1: 'Backup Size Warning'
|
||||
value2: >
|
||||
Backup target size has grown to {{ states('sensor.dockerconfigs_backup_target_size') | float / 1000000000 }} GB.
|
||||
Please verify backup contents and available storage.
|
||||
96
config/packages/llmvision.yaml
Normal file
96
config/packages/llmvision.yaml
Normal file
@@ -0,0 +1,96 @@
|
||||
######################################################################
|
||||
# @CCOSTAN - Follow Me on X
|
||||
# For more info visit https://www.vcloudinfo.com/click-here
|
||||
# Original Repo : https://github.com/CCOSTAN/Home-AssistantConfig
|
||||
# -------------------------------------------------------------------
|
||||
# LLM Vision - Garage Cans X Check - detects reflective X on right wall
|
||||
# Trigger with input_button.llmvision_garbage_check to update garbage_cans_out.
|
||||
# -------------------------------------------------------------------
|
||||
# Notes: LLMVision analyzes camera.garagecam; expects strict "on"/"off" output.
|
||||
# Docs: https://llmvision.gitbook.io/getting-started/usage/image-analyzer
|
||||
######################################################################
|
||||
|
||||
input_button:
|
||||
llmvision_garbage_check:
|
||||
name: "LLM Vision: Garage cans check"
|
||||
icon: mdi:delete-variant
|
||||
|
||||
input_boolean:
|
||||
garbage_cans_out:
|
||||
name: "Garbage Cans Out"
|
||||
icon: mdi:trash-can
|
||||
|
||||
input_text:
|
||||
llmvision_garbage_last_response:
|
||||
name: "LLM Vision garage response"
|
||||
max: 255
|
||||
llmvision_garbage_last_keyframe:
|
||||
name: "LLM Vision garage key frame"
|
||||
max: 255
|
||||
|
||||
input_datetime:
|
||||
llmvision_garbage_last_run:
|
||||
name: "LLM Vision garage last run"
|
||||
has_date: true
|
||||
has_time: true
|
||||
|
||||
template:
|
||||
- binary_sensor:
|
||||
- name: "Garbage Cans Out"
|
||||
unique_id: llmvision_garbage_cans_out
|
||||
device_class: presence
|
||||
state: "{{ is_state('input_boolean.garbage_cans_out', 'on') }}"
|
||||
attributes:
|
||||
last_run: "{{ states('input_datetime.llmvision_garbage_last_run') }}"
|
||||
last_response: "{{ states('input_text.llmvision_garbage_last_response') }}"
|
||||
last_key_frame: "{{ states('input_text.llmvision_garbage_last_keyframe') }}"
|
||||
source_camera: camera.garagecam
|
||||
|
||||
automation:
|
||||
- alias: LLM Vision - Garbage cans out
|
||||
id: d88a2e6d-78f3-4bb7-9d9f-c4d06e6eb5a9
|
||||
mode: restart
|
||||
trigger:
|
||||
- platform: state
|
||||
entity_id: input_button.llmvision_garbage_check
|
||||
variables:
|
||||
prompt_text: >
|
||||
Examine the image. I have taped a reflective X on the right wall. Look for the reflective X on the right wall. If you clearly see the X, respond exactly: on. If you cannot see the X, respond exactly: off. No other words.
|
||||
action:
|
||||
- service: llmvision.data_analyzer
|
||||
response_variable: llmvision_result
|
||||
data:
|
||||
provider: !secret llmvision_provider_entry
|
||||
model: gpt-4.1-nano
|
||||
message: "{{ prompt_text }}"
|
||||
sensor_entity: input_boolean.garbage_cans_out
|
||||
image_entity:
|
||||
- camera.garagecam
|
||||
include_filename: false
|
||||
target_width: 1280
|
||||
max_tokens: 16
|
||||
expose_images: true
|
||||
- service: input_text.set_value
|
||||
target:
|
||||
entity_id: input_text.llmvision_garbage_last_response
|
||||
data:
|
||||
value: "{{ (llmvision_result.response_text | default('unknown'))[:250] }}"
|
||||
- choose:
|
||||
- conditions: "{{ llmvision_result is defined and llmvision_result.key_frame is defined }}"
|
||||
sequence:
|
||||
- service: input_text.set_value
|
||||
target:
|
||||
entity_id: input_text.llmvision_garbage_last_keyframe
|
||||
data:
|
||||
value: "{{ llmvision_result.key_frame }}"
|
||||
default:
|
||||
- service: input_text.set_value
|
||||
target:
|
||||
entity_id: input_text.llmvision_garbage_last_keyframe
|
||||
data:
|
||||
value: ""
|
||||
- service: input_datetime.set_datetime
|
||||
target:
|
||||
entity_id: input_datetime.llmvision_garbage_last_run
|
||||
data:
|
||||
datetime: "{{ now() }}"
|
||||
@@ -35,11 +35,8 @@
|
||||
[Here is the current weather outside]
|
||||
{% set aq_description = state_attr('sensor.bear_stone_common_air_quality_index', 'description') | default('') %}
|
||||
{% set aq_index = states('sensor.bear_stone_common_air_quality_index') | int(0) %}
|
||||
{% if aq_description %}
|
||||
Air Quality: {{ aq_description }}
|
||||
{% endif %}
|
||||
{% if aq_index >= 150 %}
|
||||
[Air quality is unhealthy; limit outdoor activity]
|
||||
{% if aq_index >= 50 %}
|
||||
[Air Quality: {{ aq_description }}]
|
||||
{% endif %}
|
||||
{% set pirateweather_metrics = states.sensor
|
||||
| selectattr('entity_id','search','pirateweather')
|
||||
|
||||
Reference in New Issue
Block a user