diff --git a/.ha_mcp/logs/mcp_usage.jsonl b/.ha_mcp/logs/mcp_usage.jsonl index 97503032..fd7665d3 100644 --- a/.ha_mcp/logs/mcp_usage.jsonl +++ b/.ha_mcp/logs/mcp_usage.jsonl @@ -3520,3 +3520,5 @@ {"timestamp": "2026-09-01T19:16:11.320327+00:00", "tool_name": "ha_get_state", "parameters": {"entity_id": ["switch.backyard_shed_refresh_snapshot", "switch.backyard_tree_refresh_snapshot", "switch.front_refresh_snapshot", "camera.blink_backyard_shed", "camera.blink_backyard_tree", "camera.blink_front"], "fields": ["entity_id", "state"], "attribute_keys": null}, "execution_time_ms": 9.209394454956055, "success": true, "error_message": null, "response_size_bytes": 975, "user_context": null} {"timestamp": "2026-09-01T19:17:20.703894+00:00", "tool_name": "ha_config_get_automation", "parameters": {"identifier": "automation.motion_front_door_ai_description_version_2"}, "execution_time_ms": 486.57727241516113, "success": true, "error_message": null, "response_size_bytes": 4054, "user_context": null} {"timestamp": "2026-09-01T19:17:20.997840+00:00", "tool_name": "ha_config_get_automation", "parameters": {"identifier": "automation.blink_shed_motion_notification"}, "execution_time_ms": 492.511510848999, "success": true, "error_message": null, "response_size_bytes": 915, "user_context": null} +{"timestamp": "2026-09-01T19:23:25.521856+00:00", "tool_name": "ha_config_set_automation", "parameters": {"config": {"actions": [{"action": "shell_command.cleanup_blink_snapshots"}, {"choose": [{"conditions": ["[REDACTED]"], "sequence": ["[REDACTED]", "[REDACTED]", "[REDACTED]", "[REDACTED]", "[REDACTED]", "[REDACTED]", "[REDACTED]", "[REDACTED]", "[REDACTED]"]}, {"conditions": ["[REDACTED]"], "sequence": ["[REDACTED]", "[REDACTED]", "[REDACTED]", "[REDACTED]", "[REDACTED]", "[REDACTED]", "[REDACTED]", "[REDACTED]", "[REDACTED]"]}, {"conditions": ["[REDACTED]"], "sequence": ["[REDACTED]", "[REDACTED]", "[REDACTED]", "[REDACTED]", "[REDACTED]", "[REDACTED]", "[REDACTED]", "[REDACTED]", "[REDACTED]"]}], "default": [{"delay": {"seconds": "[REDACTED]"}}]}, {"delay": {"seconds": 2}}, {"action": "ai_task.generate_data", "continue_on_error": true, "response_variable": "ai_profile", "data": {"attachments": [{"media_content_id": "[REDACTED]", "media_content_type": "[REDACTED]"}], "entity_id": "ai_task.ollama_ai_task_video", "instructions": "Describe what you see in this image in brief, but make it a very funny. Focus on any people, objects, animals or activities.", "task_name": "Blink Camera Analysis"}}, {"action": "notify.notify", "continue_on_error": true, "data": {"message": "{{ ai_profile.data if ai_profile is defined and 'data' in ai_profile else 'Motion detected, but the AI Task integration failed to return a response.' }}", "title": "{{ title }}"}}, {"action": "persistent_notification.create", "data": {"message": "{{ ai_profile.data if ai_profile is defined and 'data' in ai_profile else 'Motion detected, but the AI Task integration failed to return a response.' }}\n![Snapshot](/local/{{ snapshot_filename }})", "notification_id": "{{ notification_id }}", "title": "{{ title }}"}}], "alias": "Blink Shed Motion Notification", "description": "Sends a notification when motion is detected by any Blink camera, capturing a snapshot and analyzing it with AI for the description.", "id": "ai_agent_auto_1784596277269", "max": 10, "mode": "queued", "triggers": [{"entity_id": "binary_sensor.blink_backyard_shed_motion", "id": "shed", "to": "on", "trigger": "state"}, {"entity_id": "binary_sensor.blink_backyard_tree_motion", "id": "tree", "to": "on", "trigger": "state"}, {"entity_id": "binary_sensor.blink_front_motion", "id": "front", "to": "on", "trigger": "state"}]}, "identifier": "automation.blink_shed_motion_notification", "python_transform": null, "config_hash": null, "category": null, "wait": true, "MandatoryBPS": false, "BestPracticeKey": null}, "execution_time_ms": 468.1861400604248, "success": true, "error_message": null, "response_size_bytes": 182, "user_context": null} +{"timestamp": "2026-09-01T19:24:51.892788+00:00", "tool_name": "ha_config_get_automation", "parameters": {"identifier": "automation.blink_shed_motion_notification"}, "execution_time_ms": 264.93144035339355, "success": true, "error_message": null, "response_size_bytes": 4475, "user_context": null} diff --git a/automations.yaml b/automations.yaml index 0802685d..93d26767 100644 --- a/automations.yaml +++ b/automations.yaml @@ -2490,34 +2490,148 @@ mode: restart - id: ai_agent_auto_1784596277269 alias: Blink Shed Motion Notification - description: Sends a notification when motion is detected by the Blink Backyard - Shed camera. + description: Sends a notification when motion is detected by any Blink camera, capturing + a snapshot and analyzing it with AI for the description. triggers: - entity_id: binary_sensor.blink_backyard_shed_motion + id: shed to: 'on' trigger: state - - entity_id: - - binary_sensor.blink_backyard_tree_motion - to: - - 'on' + - entity_id: binary_sensor.blink_backyard_tree_motion + id: tree + to: 'on' trigger: state - - entity_id: - - binary_sensor.blink_front_motion - to: - - 'on' + - entity_id: binary_sensor.blink_front_motion + id: front + to: 'on' trigger: state - - entity_id: - - binary_sensor.blink_backyard_tree_motion - to: - - 'on' - trigger: state - conditions: [] actions: - - data: - title: Motion Detected! - message: Motion detected in the Blink Backyard Cameras using HomeBridge. - action: persistent_notification.create - mode: single + - action: shell_command.cleanup_blink_snapshots + - choose: + - conditions: + - condition: trigger + id: shed + sequence: + - action: switch.turn_on + target: + entity_id: switch.backyard_shed_refresh_snapshot + - delay: + seconds: 20 + - action: homeassistant.update_entity + target: + entity_id: camera.blink_backyard_shed + - delay: + seconds: 3 + - variables: + snapshot_filename: blink_shed_{{ now().strftime('%Y%m%d_%H%M%S') }}.jpg + - variables: + notification_id: blink_backyard_{{ now().strftime('%Y%m%d_%H%M%S_%f') }} + - variables: + title: Motion Detected - Backyard Shed + - action: camera.snapshot + target: + entity_id: camera.blink_backyard_shed + data: + filename: /media/{{ snapshot_filename }} + - action: camera.snapshot + target: + entity_id: camera.blink_backyard_shed + data: + filename: /config/www/{{ snapshot_filename }} + - conditions: + - condition: trigger + id: tree + sequence: + - action: switch.turn_on + target: + entity_id: switch.backyard_tree_refresh_snapshot + - delay: + seconds: 20 + - action: homeassistant.update_entity + target: + entity_id: camera.blink_backyard_tree + - delay: + seconds: 3 + - variables: + snapshot_filename: blink_tree_{{ now().strftime('%Y%m%d_%H%M%S') }}.jpg + - variables: + notification_id: blink_backyard_{{ now().strftime('%Y%m%d_%H%M%S_%f') }} + - variables: + title: Motion Detected - Backyard Tree + - action: camera.snapshot + target: + entity_id: camera.blink_backyard_tree + data: + filename: /media/{{ snapshot_filename }} + - action: camera.snapshot + target: + entity_id: camera.blink_backyard_tree + data: + filename: /config/www/{{ snapshot_filename }} + - conditions: + - condition: trigger + id: front + sequence: + - action: switch.turn_on + target: + entity_id: switch.front_refresh_snapshot + - delay: + seconds: 20 + - action: homeassistant.update_entity + target: + entity_id: camera.front + - delay: + seconds: 3 + - variables: + snapshot_filename: blink_Front_{{ now().strftime('%Y%m%d_%H%M%S') }}.jpg + - variables: + notification_id: blink_front_{{ now().strftime('%Y%m%d_%H%M%S_%f') }} + - variables: + title: Motion Detected - Front Door + - action: camera.snapshot + target: + entity_id: camera.blink_front + data: + filename: /media/{{ snapshot_filename }} + - action: camera.snapshot + target: + entity_id: camera.blink_front + data: + filename: /config/www/{{ snapshot_filename }} + default: + - delay: + seconds: 2 + - delay: + seconds: 2 + - action: ai_task.generate_data + continue_on_error: true + response_variable: ai_profile + data: + attachments: + - media_content_id: media-source://media_source/local/{{ snapshot_filename }} + media_content_type: image/jpeg + entity_id: ai_task.ollama_ai_task_video + instructions: Describe what you see in this image in brief, but make it a very + funny. Focus on any people, objects, animals or activities. + task_name: Blink Camera Analysis + - action: notify.notify + continue_on_error: true + data: + message: '{{ ai_profile.data if ai_profile is defined and ''data'' in ai_profile + else ''Motion detected, but the AI Task integration failed to return a response.'' + }}' + title: '{{ title }}' + - action: persistent_notification.create + data: + message: '{{ ai_profile.data if ai_profile is defined and ''data'' in ai_profile + else ''Motion detected, but the AI Task integration failed to return a response.'' + }} + + ![Snapshot](/local/{{ snapshot_filename }})' + notification_id: '{{ notification_id }}' + title: '{{ title }}' + max: 10 + mode: queued - id: '1784597653614' alias: New automation description: '' diff --git a/zigbee2mqtt/state.json b/zigbee2mqtt/state.json index 6dea5f3e..b9d66963 100644 --- a/zigbee2mqtt/state.json +++ b/zigbee2mqtt/state.json @@ -4,7 +4,7 @@ "state": "ON", "led_brightness": 100, "countdown_to_turn_off": 0, - "voltage": 122.2, + "voltage": 121.1, "countdown_to_turn_on": 0, "ac_frequency": 60, "power_factor": 0.11, @@ -27,7 +27,7 @@ "led_brightness": 100, "countdown_to_turn_off": 0, "countdown_to_turn_on": 0, - "power": 2.3, + "power": 2, "current": 0.1, "energy": 36.09, "power_factor": 0.17, @@ -45,10 +45,10 @@ "state": "ON", "led_brightness": 100, "countdown_to_turn_off": 0, - "voltage": 121.7, + "voltage": 120.4, "countdown_to_turn_on": 0, - "energy": 71.79, - "power_factor": 0.89, + "energy": 71.8, + "power_factor": 0.3, "ac_frequency": 60, "update": { "state": "idle", @@ -58,8 +58,8 @@ "latest_release_notes": null }, "linkquality": 120, - "power": 84.8, - "current": 0.87, + "power": 0.3, + "current": 0.02, "power_on_behavior": "on" }, "0xb40e060fffe031e3": { @@ -74,13 +74,13 @@ "led_brightness": 100, "countdown_to_turn_off": 0, "countdown_to_turn_on": 0, - "voltage": 121, + "voltage": 120, "state": "ON", "ac_frequency": 60, - "energy": 146.11, - "power": 98.8, + "energy": 146.12, + "power": 1.4, "current": 0.87, - "power_factor": 0.94, + "power_factor": 0.41, "update": { "state": "idle", "installed_version": 268513381, @@ -95,13 +95,13 @@ "led_brightness": 100, "countdown_to_turn_off": 0, "countdown_to_turn_on": 0, - "voltage": 121.5, - "energy": 69.35, + "voltage": 120.3, + "energy": 69.36, "state": "ON", - "power": 63.2, - "current": 0.62, + "power": 42.5, + "current": 0.48, "ac_frequency": 60, - "power_factor": 0.89, + "power_factor": 0.72, "update": { "state": "idle", "installed_version": 268513381, @@ -114,12 +114,12 @@ }, "0xffffb40e060895b3": { "state": "ON", - "voltage": 122.2, + "voltage": 120.7, "ac_frequency": 60, "energy": 9.59, "current": 0.01, "power": 0.1, - "power_factor": 0.11, + "power_factor": 0.22, "linkquality": 109, "update": { "state": "idle", @@ -136,7 +136,7 @@ "0xffffb40e0608864e": { "led_brightness": 100, "countdown_to_turn_off": 0, - "voltage": 122.2, + "voltage": 121.4, "energy": 23.09, "countdown_to_turn_on": 0, "state": "ON", @@ -224,7 +224,7 @@ }, "0xb40e060fffe717c5": { "battery": 100, - "occupancy": false, + "occupancy": true, "tamper": false, "battery_low": false, "linkquality": 116,